This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
TPS2HCS10-Q1器件具有可选的循环冗余校验(CRC)功能、可确保正确发送和接收每个 SPI 帧(SPI 格式:COPL = 0、CPHA = 1)。 此 CRC 计算基于 CRC-4-ITU 标准、多项式为 x4 + x + 1、起始值为1111。 更多信息、请参阅 TPS2HCS10-Q1数据表。 请参阅下面有关如何计算 CRC 位的代码示例:
uint8_t crc_encode(uint8_t send_rec_bytes[3])
{
uint8_t crc_start = 0x0F;
uint8_t crc_polynomial = 0x03;
uint8_t crc_result = crc_start;
uint8_t bitnum = 0;
uint8_t bytenum = 0;
for (bytenum = 0;bytenum < 3;bytenum++)
{ for(bitnum = 0; bitnum < 8; bitnum++)
{
if((((send_rec_bytes[bytenum] >> (7-bitnum)) & 0x01) ^ ((crc_result & 0x08) >> 3)) > 0)
crc_result = crc_polynomial ^ ((crc_result << 1) & 0x0F);
else
crc_result = (crc_result << 1) & 0x0F;
}
}
for(bitnum = 0; bitnum < 4; bitnum++)
{
if(((crc_result & 0x08) >> 3) > 0)
crc_result = crc_polynomial ^ ((crc_result << 1) & 0x0F);
else
crc_result = (crc_result << 1) & 0x0F;
}
return crc_result;
}
如需更多信息、请点击页面右上角的红色"提出新问题"按钮、创建新帖子。
谢谢!
Patrick