У меня есть STM32F429ZI (Discovery Board) и этот очень простой код, вычисляющий CRC8:
uint32_t data[5] = { 0x28, 0x4f, 0x4c, 0x43, 0x29 };
uint8_t crc = HAL_CRC_Calculate(&hcrc, data, 5);
Результат crc — 0x51. https://crccalc.com/ дает мне 0xF3. Я получил этот код отсюда. Еще они получили 0xF3.
Я не понимаю, как в этом коде работает преобразование crc32 в crc8. Итак, я протестировал crc32:
uint32_t data[5] = { 0x28, 0x4f, 0x4c, 0x43, 0x29 };
uint32_t crc = HAL_CRC_Calculate(&hcrc, data, 5);
На этот раз я получаю 0x554C8351. Вместо этого crccalc.com дает мне 0x14822BBD. Опять другой результат.
STM32F4 не имеет никаких возможностей настройки CRC. Что я делаю не так? Я хочу вычислить CRC8 с помощью полинома: X8 + X2 + X + 1
Я нашел другого парня, который поделился своим кодом для расчета CRC8:
https:// Community.st.com/t5/stm32-mcus-security/crc-calculation-for-8-bit-values/td-p/191270 Но опять же, я не смог сравниться с его результатами.
Итак, мой вопрос:
Как правильно вычислить CRC8 массива uint8_t в STM32F4xx на C++?
< hr />
CRC клавиши F4 настроить невозможно. Итак, инициализация происходит напрямую из STM32CubeMX:
void MX_CRC_Init(void)
{
hcrc.Instance = CRC;
if (HAL_CRC_Init(&hcrc) != HAL_OK)
{
Error_Handler();
}
}
HAL_StatusTypeDef HAL_CRC_Init(CRC_HandleTypeDef *hcrc)
{
if (hcrc == NULL)
{
return HAL_ERROR;
}
assert_param(IS_CRC_ALL_INSTANCE(hcrc->Instance));
if (hcrc->State == HAL_CRC_STATE_RESET)
{
hcrc->Lock = HAL_UNLOCKED;
HAL_CRC_MspInit(hcrc);
}
hcrc->State = HAL_CRC_STATE_READY;
return HAL_OK;
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... se-results
STM32F4 HAL_CRC_Calculate() дает ложные результаты ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
MatchTemplate() пропускает обнаружения и дает ложные срабатывания, что я могу сделать?
Anonymous » » в форуме Python - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-
-
-
MatchTemplate() пропускает обнаружения и дает ложные срабатывания, что я могу сделать?
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-