硬汉嵌入式论坛

 找回密码
 立即注册
查看: 922|回复: 4
收起左侧

[技术讨论] 关于从站例程中modbus的问题请教

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2024-9-11 09:43:33 | 显示全部楼层 |阅读模式
        /* 计算CRC校验和 */
        crc1 = CRC16_Modbus(g_tModS.RxBuf, g_tModS.RxCount);
        if (crc1 != 0)
        {
                goto err_ret;
        }请问各位大佬这个是什么意思呢,为什么CRC校验结果会是0啊

回复

使用道具 举报

0

主题

118

回帖

118

积分

初级会员

积分
118
发表于 2024-9-11 14:51:00 | 显示全部楼层
这个包含crc值一起计算了
回复

使用道具 举报

0

主题

44

回帖

44

积分

新手上路

积分
44
发表于 2024-10-24 13:17:58 | 显示全部楼层
为啥包含CRC计算,结果就一定是0?这是啥原理?
回复

使用道具 举报

0

主题

44

回帖

44

积分

新手上路

积分
44
发表于 2024-10-25 09:19:08 | 显示全部楼层
沉醉东风 发表于 2024-10-24 13:17
为啥包含CRC计算,结果就一定是0?这是啥原理?

明白了,按位异或运算,相同位0,假如包含CRC16在内,一共接收到100个字节,第99和100是CRC16值,前98个字节计算出CRC值,再与最后两个字节(CRC16值)做异或运算,为0说明值相同,所以就是对的。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-10-25 09:28:35 | 显示全部楼层
沉醉东风 发表于 2024-10-24 13:17
为啥包含CRC计算,结果就一定是0?这是啥原理?

这个地方是把接收到的数据+接收到的CRC一起计算CRC ,结果是0
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:01 , Processed in 0.039667 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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