TI中文支持网
TI专业的中文技术问题搜集分享网站

求助:CC1101的CRC16计算

从TI官网资料DN502看,采用的是CRC16 (x16 + x15 + x2 + 1) ,即CRC-16(IBM)格式,以下是程序代码:

#define CRC16_POLY 0x8005
UINT16 culCalcCRC(BYTE crcData, UINT16 crcReg) {
UINT8 i;
for (i = 0; i < 8; i++) {
if (((crcReg & 0x8000) >> 8) ^ (crcData & 0x80))
crcReg = (crcReg << 1) ^ CRC16_POLY;
else
crcReg = (crcReg << 1);
crcData <<= 1;
}
return crcReg;
}// culCalcCRC
//—————————————————————-
// Example of Usage
#define CRC_INIT 0xFFFF
UINT8 txBuffer = {0, 1, 2, 3, 4, 5};
UINT16 checksum;
UINT8 i;
checksum = CRC_INIT; // Init value for CRC calculation
for (i = 0; i < sizeof(txBuffer); i++)
checksum = culCalcCRC(txBuffer[i], checksum);

请问对于数组 data[8]={0xFE,0x01,0x02,0x03,0x02,0x0C,0x1A,0x43};

其CRC16计算的中间过程的checksum,分别是多少?我用程序跑下来的结果,差异太大,已经不知道CRC-16(IBM)的基准值是多少了?

另外,请问有无CC1101的CRC16计算软件提供?

Peter_Zheng:

请参看www.ti.com/…/getliterature.tsp 关于CRC部分的解释。

赞(0)
未经允许不得转载:TI中文支持网 » 求助:CC1101的CRC16计算
分享到: 更多 (0)