OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4615|回复: 2

串口通信用CRC16查表法校验,要包含帧头,数据类型和长度吗?

[复制链接]

6

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
金钱
215
注册时间
2012-12-17
在线时间
77 小时
发表于 2016-8-25 16:39:50 | 显示全部楼层 |阅读模式
5金钱
如题
假如发送数组temp[]={ox11,0x22,ox33,0x44,ox55,0x66,ox77,0x88}
包格式:帧头:0x5a,类型:0xA0,长度:0x08 数据:temp[]+crc16_l+crc16h
调用u16 Get_Crc16(u8 *puchMsg,u16 usDataLen)
{
        u8 uchCRCHi=0xFF;         //高CRC 字节初始化
        u8 uchCRCLo=0xFF;         //低CRC 字节初始化
        u32 uIndex;                 //CRC 循环中的索引
        while(usDataLen--)         //传输消息缓冲区
        {
                uIndex=uchCRCHi^*puchMsg++; //计算CRC
                uchCRCHi=uchCRCLo^auchCRCHi[uIndex];
                uchCRCLo=auchCRCLo[uIndex];
        }
        return (uchCRCHi<<8|uchCRCLo);
}
请问此函数要不要包含帧头,类型,长度??

最佳答案

查看完整内容[请看2#楼]

不包进去,接收方检验的时候就也不包进去就行了,包进去同个道理。赞成楼上的说法
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

261

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
2075
注册时间
2014-2-20
在线时间
284 小时
发表于 2016-8-25 16:39:51 | 显示全部楼层
不包进去,接收方检验的时候就也不包进去就行了,包进去同个道理。赞成楼上的说法
回复

使用道具 举报

5

主题

184

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1050
金钱
1050
注册时间
2016-5-13
在线时间
111 小时
发表于 2016-8-25 17:19:28 | 显示全部楼层
一般不要包括。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-6 18:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表