初级会员

- 积分
- 86
- 金钱
- 86
- 注册时间
- 2017-7-12
- 在线时间
- 46 小时
|
1金钱
unsigned char*data;
unsigned char length;
unsigned int crc_chk(unsigned char *data,unsigned char length)
{
int j;
unsigned int crc_reg=0xFFFF;
while(length--)
{
crc_reg^=*data++;
for(j=0;j<8;j++)
{
if(crc_reg&0x01)
{
crc_reg=(crc_reg>>1)^0xA001;
}
else
{
crc_reg=crc_reg>>1;
}
}
}
return crc_reg;
}
用该程序校验32位数据0x2FAAAB26,定义u8 crc[4];unsigned int calculate_crc;crc[0]=0x2F;//buffer[1];
crc[0]=0x2F;
crc[1]=0xAA;
crc[2]=0xAB;
crc[3]=0x26;
计算calculate_crc=crc_chk(crc,4);
然后利用串口一
USART_SendData(USART1,calculate_crc);
delay_ms(1000);
但是我在串口助手XCOM上面只显示D6,请问原子哥是什么原因@正点原子
烦请各位高手指点
|
|