STM32. CRC. Теория. Как считать. Алгоритм. CRC HAL. Аппаратный блок. CRC-8/16/32 бита.
ฝัง
- เผยแพร่เมื่อ 8 ก.ค. 2024
- Многие пренебрегают изучением CRC. Пренебрегают общением между устройствами с использованием CRC. А ведь это Ваша защита от битых данных. Ключ к успеху в проектировании надежных устройств)
Не поленись, посмотри видео)
Мой GitHub: github.com/Solderingironspb/L...
Мы в контакте: solderingiron.stm32
ЯндексДзен: zen.yandex.ru/id/622208eed2eb...
Материалы из занятия: github.com/Solderingironspb/L...
Википедия про CRC: ru.wikipedia.org/wiki/%D0%A6%...
AN4187: www.st.com/resource/en/applic...
CRC_Calc_Online: crccalc.com/
00:00 Введение
00:12 Что такое CRC
00:58 Как нам поможет CRC
01:25 Вычисление CRC(Как считать полином?)
05:58 Алгоритм вычисления CRC
08:55 Программный вариант расчета CRC-32(как пример)
09:52 Про аппаратную поддержку CRC на STM32
10:31 Активация модуля CRC(простые МК)
12:22 Активация модуля CRC(продвинутые МК) - วิทยาศาสตร์และเทคโนโลยี
Отличное объяснение. Всегда использовал, но не вдавался настолько глубоко в подробности как рассчитывать. Тоже пытался найти адекватно написанную информацию про алгоритм вычисления полинома, но не находил. А тут прекрасный рассказ👌
Очень сильно помогло. Все четко шаг за шагом объяснил. Спасибо тебе большое. 🤩🤩🤩🤗
Спасибо. Реально то, что нужно было. А нужно было до конца разобраться тут и все откладывал.
Спасибо за очередное видео. Заждались уже... =)
Спасибо за материал. Еще предстоит разобраться с CRC.
Спасибо за объяснение
Спасибо тебе большое друг!
красава по факту все разложил без фигни
часто в аврках встречал табличный срс, было б интересно про него тоже послушать)
Спасибо нужно, попробовать . У меня в Mudbos расчет CRC16 программный , работаю с MK серией G. Что то особо не вникал в аппаратный расчет CRC думал там на 32 бита все заточено, а оказывается вон оно как. Нужно попробовать , надеюсь аппаратный расчет CRC 16 действительно происходит быстрей чтоб ради этого заморачиваться . Мне как раз не мешало бы снять нагрузку с МК, особенно по Modbus а то HMI панель напрягает своими запросами.
До этого дня я и не_знал_зачем мне нужно СяС!
блин, да это ж мозг сломать можно. я еще с указателями разбираюсь) а тут такое
Ахах) ну да, это сложные темы)
Я тоже... -> , : , :: , ->[],....
Добрый день, посмотрите мое представления об идее CRC 4
Благодарю за видео! У меня возник один вопрос по поводу алгоритма(8:16):
почему после шага "Начало", необходимо начальное значение crc складывать по модулю 2 с входным данным(на видео данный шаг, выглядит следующим образом: CRC = 0xFFFFFFFF ^ 0x4F32CCDE)?
После начала происходит операция XOR между входными данными и начальным значением CRC. В большинстве случаев начальное CRC равняется 0xFFFFFFFF .Т.е. Представим, что у нас массив из 2 элементов типа uint32_t. Мы хотим посчитать CRC32. Изначально у нас CRC32 = 0xFFFFFFFF. Далее мы делаем операцию XOR между 0xFFFFFFFF и 1 элементом буфера, заводим после этого счетчик и топаем по алгоритму. В итоге имеем новое CRC32. Возвращаемся в начало. Теперь у нас CRC32 уже измененное. Делаем операцию XOR между ним и 2 элементом массива, опять проходим по циклу и получаем CRC32 от 2 элементов массива. Гляньте код на Си, что я представил. Может понятней будет.
@@Solderingironspb мне кажется или функция расчета crc в примере (которая на С), не умеет в более чем одно 32 битное слово...
я так понимаю все эти полиномы не позволят отбросив 2 старших байта от результата получить правильную CRC16 сумму?
Здравствуйте как с вами можно связаться
olegdizzvolkov@yandex.ru
Почему так
crc32 = (crc32