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(продвинутые МК)
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 22

  • @sozdatelEd
    @sozdatelEd 2 ปีที่แล้ว +2

    Отличное объяснение. Всегда использовал, но не вдавался настолько глубоко в подробности как рассчитывать. Тоже пытался найти адекватно написанную информацию про алгоритм вычисления полинома, но не находил. А тут прекрасный рассказ👌

  • @zeroman917
    @zeroman917 ปีที่แล้ว +1

    Очень сильно помогло. Все четко шаг за шагом объяснил. Спасибо тебе большое. 🤩🤩🤩🤗

  • @ajdarseidzade688
    @ajdarseidzade688 2 ปีที่แล้ว

    Спасибо. Реально то, что нужно было. А нужно было до конца разобраться тут и все откладывал.

  • @d1zz3l
    @d1zz3l 2 ปีที่แล้ว

    Спасибо за очередное видео. Заждались уже... =)

  • @slavaglow6933
    @slavaglow6933 2 ปีที่แล้ว

    Спасибо за материал. Еще предстоит разобраться с CRC.

  • @user-td8wl7dd4m
    @user-td8wl7dd4m 7 หลายเดือนก่อน

    Спасибо за объяснение

  • @szapsis
    @szapsis ปีที่แล้ว

    Спасибо тебе большое друг!

  • @maisterofdeath7173
    @maisterofdeath7173 2 ปีที่แล้ว

    красава по факту все разложил без фигни

  • @OpenFrimeTVcom
    @OpenFrimeTVcom 2 ปีที่แล้ว

    часто в аврках встречал табличный срс, было б интересно про него тоже послушать)

  • @statstopfinish
    @statstopfinish 2 ปีที่แล้ว

    Спасибо нужно, попробовать . У меня в Mudbos расчет CRC16 программный , работаю с MK серией G. Что то особо не вникал в аппаратный расчет CRC думал там на 32 бита все заточено, а оказывается вон оно как. Нужно попробовать , надеюсь аппаратный расчет CRC 16 действительно происходит быстрей чтоб ради этого заморачиваться . Мне как раз не мешало бы снять нагрузку с МК, особенно по Modbus а то HMI панель напрягает своими запросами.

  • @serggorod1423
    @serggorod1423 ปีที่แล้ว

    До этого дня я и не_знал_зачем мне нужно СяС!

  • @OpenFrimeTVcom
    @OpenFrimeTVcom 2 ปีที่แล้ว

    блин, да это ж мозг сломать можно. я еще с указателями разбираюсь) а тут такое

    • @Solderingironspb
      @Solderingironspb  2 ปีที่แล้ว

      Ахах) ну да, это сложные темы)

    • @serggorod1423
      @serggorod1423 ปีที่แล้ว

      Я тоже... -> , : , :: , ->[],....

  • @user-mq9wp3mj8x
    @user-mq9wp3mj8x ปีที่แล้ว

    Добрый день, посмотрите мое представления об идее CRC 4

  • @rfvalve
    @rfvalve 2 ปีที่แล้ว

    Благодарю за видео! У меня возник один вопрос по поводу алгоритма(8:16):
    почему после шага "Начало", необходимо начальное значение crc складывать по модулю 2 с входным данным(на видео данный шаг, выглядит следующим образом: CRC = 0xFFFFFFFF ^ 0x4F32CCDE)?

    • @Solderingironspb
      @Solderingironspb  2 ปีที่แล้ว +2

      После начала происходит операция XOR между входными данными и начальным значением CRC. В большинстве случаев начальное CRC равняется 0xFFFFFFFF .Т.е. Представим, что у нас массив из 2 элементов типа uint32_t. Мы хотим посчитать CRC32. Изначально у нас CRC32 = 0xFFFFFFFF. Далее мы делаем операцию XOR между 0xFFFFFFFF и 1 элементом буфера, заводим после этого счетчик и топаем по алгоритму. В итоге имеем новое CRC32. Возвращаемся в начало. Теперь у нас CRC32 уже измененное. Делаем операцию XOR между ним и 2 элементом массива, опять проходим по циклу и получаем CRC32 от 2 элементов массива. Гляньте код на Си, что я представил. Может понятней будет.

    • @zlakomanoff
      @zlakomanoff ปีที่แล้ว

      @@Solderingironspb мне кажется или функция расчета crc в примере (которая на С), не умеет в более чем одно 32 битное слово...

  • @user-tl6ev6nh2k
    @user-tl6ev6nh2k 2 ปีที่แล้ว

    я так понимаю все эти полиномы не позволят отбросив 2 старших байта от результата получить правильную CRC16 сумму?

  • @safotv1026
    @safotv1026 ปีที่แล้ว +1

    Здравствуйте как с вами можно связаться

  • @user-hy3bn1vz7k
    @user-hy3bn1vz7k 4 หลายเดือนก่อน

    Почему так
    crc32 = (crc32