crc16校检问题

freedomfly911 2009-04-16 10:17:54
名称 占用字节数目 备注
帧头 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++;
。。。。。。
...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
freedomfly911 2009-04-19
  • 打赏
  • 举报
回复
求高手指教啊
freedomfly911 2009-04-17
  • 打赏
  • 举报
回复
看到论坛里很多crc程序,有一点不明,最后得到的crc码是和报文中的crc进行比对么?
还是得到的就是余数,判断其是否是0就可以?

谢谢赐教,不胜感激。
freedomfly911 2009-04-17
  • 打赏
  • 举报
回复
求达人指教

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧