以03功能码为例,该功能为读取保持寄存器。
主机发送格式为:
从机地址 | 功能码 | 从机地址高字节 | 从机地址低字节 | 寄存器数量高字节 | 寄存器数量低字节 | CRC高字节 | CRC低字节
从机响应格式为:
从机地址|功能码|字节数|数据1高位|数据1低位|...|CRC高字节|CRC低字节
为什么发送时是用两个字节表示的寄存器数量,返回时却是一个字节的字节数?
以为其他命令也都是类似的,看到06时,写一个掉电保持寄存器时,响应返回来的是 寄存器数量高字节 | 寄存器数量低字节。
看到10H命令时,写多个掉电保持寄存器,响应返回来的是 寄存器数量高字节 | 寄存器数量低字节 | 字节数。
难道不是所有的寄存器都是16位的吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
请仔细阅读协议标准,协议上讲的很详细!《GB/T19582.1-2008》
一周热门 更多>