crc16校检问题
名称 占用字节数目 备注
帧头 2 取值:0x5555
长度码 1
方位码 2
CRC码 2 将“长度码”和“方位码”的内容作CRC-16效验
帧尾 2 取值:0xAAAA
例:
0x 55 55 02 00 B4 D0 77 AA AA
0x 55 55 02 01 0E 50 54 AA AA
0x 55 55 02 01 69 11 BE AA AA
0x 55 55 02 01 6E 50 7C AA AA
0x 55 55 02 01 E0 D0 18 AA AA
0x 55 55 02 01 FB 90 13 AA AA
我用api开发了一个串口程序,设一个byte buf[9]接收数据,请问这个crc16校检怎么做?
其他代码如下:
for(int i=0;i <len;i++)
{
BYTE buf[9];
memcpy(buf,abIn+i,9);
if( 0x55 == buf[ 0 ] && 0x55 == buf[ 1 ] )
{
flag = 0;
if(0xaa == buf[ 7 ] && 0xaa == buf[ 8 ])
{
//crc-16校检
flag++;
。。。。。。