OpenEdv-开源电子网

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

关于modbus ASCII模式下的LRC校验问题

[复制链接]

24

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-10-21
在线时间
41 小时
发表于 2020-9-11 14:14:05 | 显示全部楼层 |阅读模式
5金钱
我们知道Modbus ASCII模式下发送的是原数据的十六进制对应的ASCII码格式,那LRC校验的是原数据还是ASCII码数据?
比如原数据为       0X04       0X04          0X0B         0XA7      0X17  对应的ASCII码  '0'     '4'    '0'    '4'      '0'    'B'     'A'     '7'    '1'    '7'
即为              0x00 0x34 0x00 0x34 0x00 0x42 0x41 0x37 0x31 0x37

现在要在数据段后边加上LRC校验码,那这个校验码是怎么算的?是用 0X04       0X04          0X0B         0XA7      0X17  算?还是根据0x00 0x34 0x00 0x34 0x00 0x42 0x41 0x37 0x31 0x37算?

最佳答案

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

都是用ASCII码啊,比如算出来AB,那么就是:0103020000AB\r\n
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

458

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4464
金钱
4464
注册时间
2018-5-14
在线时间
957 小时
发表于 2020-9-11 14:14:06 | 显示全部楼层
ForestLi 发表于 2020-9-11 16:46
我问的不是LRC怎么算,是不知道Modbus的ASCII模式的LRC校验是用原数据算还是ASCII码的。

都是用ASCII码啊,比如算出来AB,那么就是:0103020000AB\r\n
回复

使用道具 举报

2

主题

458

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4464
金钱
4464
注册时间
2018-5-14
在线时间
957 小时
发表于 2020-9-11 14:20:09 | 显示全部楼层
http://www.ip33.com/lrc.html
把冒号后面所有的字符放进去计算就行了
回复

使用道具 举报

24

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-10-21
在线时间
41 小时
 楼主| 发表于 2020-9-11 16:46:12 | 显示全部楼层
姚先起 发表于 2020-9-11 14:20
http://www.ip33.com/lrc.html
把冒号后面所有的字符放进去计算就行了

我问的不是LRC怎么算,是不知道Modbus的ASCII模式的LRC校验是用原数据算还是ASCII码的。
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4478
金钱
4478
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-9-12 10:20:21 | 显示全部楼层
回复

使用道具 举报

24

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2017-10-21
在线时间
41 小时
 楼主| 发表于 2020-9-22 11:17:40 | 显示全部楼层
姚先起 发表于 2020-9-21 13:11
都是用ASCII码啊,比如算出来AB,那么就是:0103020000AB\r\n

好的明白了谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-17 02:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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