分享一下极海APM32F103的CRC32软件匹配算法
上次发了一个求助帖子,好多热心的网友提供了解决办法。感谢感谢。
我经过几天的学习,也把这个事情搞定了,现在分享一下。
我的参考资料来自极海半导体的B站视频《[APM32技术微课|第23讲]APM32的CRC应用分享》 原视频大家自己在B站搜索吧!
CRC软件实现的官网
libCRC官网:https://www.libcrc.org
LibCRC github仓库:https://github.com/lammertb/libcrc
uint32_t crc32mpeg2(uint8_t data[], uint32_t length)
{
uint32_t crc = 0xFFFFFFFF;
uint32_t i, j;
for(i = 0; i < length; i++)
{
crc = crc ^ (data[i] << 24);
for(j = 0; j < 8; j++)
{
if(crc & 0x80000000)
{
crc = (crc << 1) ^ 0x04C11DB7;
}
else
{
crc = crc << 1;
}
}
}
return (crc);
}
|