C语言中的Modbus ASCII LRC生成
Posted
技术标签:
【中文标题】C语言中的Modbus ASCII LRC生成【英文标题】:Modbus ASCII LRC Generation in C 【发布时间】:2021-12-16 11:11:18 【问题描述】:我正在尝试通过串行端口实现 Modbus Ascii 从站,但无法理解 LRC 计算。 我将master发送的数据存储在uint_8数组中,不明白下一部分,从master发送的ascii字符是否需要在计算之前转换为它们的十六进制值? 如果使用十六进制字符进行计算,从 ascii char 转换为 hex 版本是什么样子的?
【问题讨论】:
欢迎来到 ***!请拨打tour 并阅读“How to Ask”以了解本网站的运作方式。 - 您不需要将 ASCII 转换为十六进制,这只是对相同二进制值的解释。例如,ASCII 字符'A'
具有二进制值 1000001 或十六进制 0x41。您可以简单地将 ASCII 值用作整数。
【参考方案1】:
关于 LRC 计算,请转到本文档的附录 B
https://modbus.org/docs/Modbus_over_serial_line_V1_01.pdf
Modbus ASCII 发送十六进制值的 ASCII 字符,LRC 字节作为两个 ASCII 字符发送也是如此。
【讨论】:
以上是关于C语言中的Modbus ASCII LRC生成的主要内容,如果未能解决你的问题,请参考以下文章