请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:BQ2022A 工具与软件:
你好
我将使用以下函数计算从 BQ2022A 返回的 CRC 值。 但是、我不确定 BQ2022A 使用的是什么作为初始 CRC 值。 我在数据表中找不到它。 有人能帮忙吗?
谢谢
Ron
#define CRC8_POLY 0x31 // x^8 + x^5 + x^4 + 1
#define CRC8_INIT 0xFF //初始 CRC 值
uint8_t calc_CRC8 (const uint8_t *数据、size_t 长度)
{
uint8_t crc = CRC8_init;
对于(size_t i = 0;i < length;i++)
{
CRC ^= data[i];
对于(uint8_t j = 0;j < 8;j++)
{
如果(CRC 和0x80)
{
CRC =(CRC << 1)^ CRC8_Poly;
}
设计
{
CRC <<= 1;
}
}
}
返回 CRC;
}