реклама на сайте
подробности

 
 
> Eclipse / Linux / GCC / ChibiOs / STM32F401RET6 СRC engine неправильно вычисляет контрольную сумму
nanorobot
сообщение Apr 8 2018, 09:18
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Код
  CRC->CR = CRC_CR_RESET;                               // сбросим регистр данных CRC Engine
  for(i = 0; i < FRAME_SIZE - 1; i++)                         // цикл по всем словам данных, кроме последнего
    CRC->DR = TxData[i];                                            // вычисляем CRC
    TxData[i] = CRC->DR;                                            // и заносим в последнее слово данных
  
  spiStartExchange(&SPID2, 12, TxData, RxData);

Контрольная сумма вычисляется неверно (не совпадает с CRC на принимающей стороне, при одинаковых данных на обеих сторонах). Если поставить брекпоинт на любой из первых трех строчек, и прогнать по шагам, CRC вычисляется верно. Если брекпоинт поставить на 4 или 5 строке - CRC неверно. Запрещать прерывания нв время вычисления CRC пробовал - не помогло. CRC Engine используется только в одном Thread.

P.S. TxData - uint32_t

Сообщение отредактировал nanorobot - Apr 8 2018, 09:33
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01346 секунд с 7
ELECTRONIX ©2004-2016