ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
1308947 Топик полностью
il-2 (12.05.2023 12:18, просмотров: 182) ответил my504 на Столкнулся со странным... Делаю проект на AT32F421 (Cortex M4). В проекте есть обмен по UART с идентичным другому серийному устройству (с таким же МК) протоколом. Обмен ведется пакетами по 64 байта. В пакете от ПО к МК имеется CRC8 в 59-м байте, который считается по таблице. В серийном изделии все работает превосходно. В текущем проекте просто скопировал весь обмен из серийного. Обмен идет отлично - пакет в отладчике я вижу идентичный посланному из ПО. Но CRC при
Кто-то/что-то подсирает в твой буфер и портит правильные данные. 

У меня было аналогичная ситуация, когда я использовал один и тот-же буфер для приема и передачи в полудуплексном режиме. Что логично.

Подсирание происходило после того, как я сформировал пакет на отправку (вместе с CRC). И в этот момент приемник ловил паразитный байт (это был IrDA), который портил готовый к отправке пакет.

Пакет отправлялся, принимающая сторона фиксировала ошибку CRC. Долго я отлаживался на принимающей стороне, пока не понял что проблема на передающей стороне.