(MODBUS版)串口LED控制板通信协议 V1.00
通信参数:波特率:9600(可设定),校验位:N,数据位:8,停止位:1
读取或写寄存器时,寄存器地址范围均不得越界!请工程师注意!若不方便使用或要兼容老产品请与我们联系。
协议详解:
一、读寄存器(功能码0x03)
1、命令格式:地址(0x01-0xFE,1字节)、功能码(0x03,1字节)、寄存器起始地址(意义见寄存器列表,2字节)、寄存器数量(详见寄存器列表,2字节)、校验位(2字节,低位先行)
2、回复格式:地址(0x01-0xFE,1字节)、功能码(0x03,1字节)、字节数(意义见寄存器列表,1字节)、寄存器值(0x0000-0xFFFF,2字节)、校验位(2字节,低位先行)
3、应用举例:读取模块的通信波特率示例如下:
二、写寄存器(功能码0x06)
1、命令格式:地址(0x01-0xFE,1字节)、功能码(0x06,1字节)、寄存器起始地址(意义见寄存器列表,2字节)、寄存器值(0x0000-0xFFFF,2字节)、校验位(2字节,低位先行)
2、回复格式:地址(0x01-0xFE,1字节)、功能码(0x06,1字节)、寄存器起始地址(意义见寄存器列表,2字节)、寄存器值(0x0000-0xFFFF,2字节)、校验位(2字节,低位先行)
3、应用举例:修改模块的地址(1改为2)示例如下:
发送:0x01 0x06 0x00 0x30 0x00 0x02 0x08 0x04
三、写多个寄存器(功能码0x10)
1、命令格式:地址(0x01-0xFE,1字节)、功能码(0x10,1字节)、寄存器起始地址(意义见寄存器列表,2字节)、寄存器个数(0x0000-0xFFFF,2字节)、字节个数(0x00-0xFF,1字节)、寄存器值(0x0000-0xFFFF,N字节)、校验位(2字节,低位先行)
2、回复格式:地址(0x01-0xFE,1字节)、功能码(0x06,1字节)、寄存器起始地址(意义见寄存器列表,2字节)、寄存器个数(0x0000-0xFFFF,2字节)、校验位(2字节,低位先行)
3、应用举例:10进制显示123.4示例如下:
四、数码管与字节的关系:
1、笔画规则: DP、G、F、E、D、C、B、A分别对应B7-B0位。
如显示数字6(A、C、D、E、F、G亮)应表示为0x7D(0111 1101)
2、应用举例:数码管5678显示EFH9示例如下:
发送:0x01 0x10 0x00 0x0C 0x00 0x02 0x04 0x79 0x71 0x76 0x6F 0xDC 0xF1
(根据笔画规则,得知EFH9的代码应表示为:0x79 0x71 0x76 0x6F)
接收:0x01 0x10 0x00 0x0C 0x00 0x02 0x81 0xCB
五、使用注意:
1、任何情况下,对寄存器的操作均不可地址越界;
2、模块仅实现了MODBUS RTU协议的以上列出部分功能,未列出的均不支持或已在程序上作了屏蔽,若有需求可联系我们
3、请先确保模块当前的显示模式可以显示相应的寄存器。如要显示10进制数时,寄存器0x0011的低8位必须为0x01,否则只能改变相关寄存器的值而不能显示该寄存器的值。同理,若要显示浮点数时,寄存器0x0011的低8位必须为0x02。0x0011寄存器掉电能保存,下次上电继续上次掉电前的值。
六、显示浮点数举例
数码管5678显示5.678示例如下:
发送:0x01 0x10 0x00 0x08 0x00 0x02 0x04 0x40 0xB5 0xB2 0x2D 0x42 0x92
(单精度浮点数5.678,应表示为0x40 0xB5 0xB2 0x2D)
接收:0x01 0x10 0x00 0x08 0x00 0x02 0xC0 0x0A