У меня есть 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++
Программы на C++. Форум разработчиков
-
Anonymous
1720706209
Anonymous
У меня есть 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 Но опять же, я не смог сравниться с его результатами.
Итак, мой вопрос:
[b]Как правильно вычислить CRC8 массива uint8_t в STM32F4xx на C++?[/b]
< 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;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78735215/stm32f4-hal-crc-calculate-gives-false-results[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия