创建一个Modbus主机,利用ModBus协议封装数据,通过串行通讯将数据下发至从机,数据取值范围0-65535。
Init baud tx rx in uart crc
对通讯接口进行初始化操作,可指定波特率、发送引脚、接收引脚、串口号及CRC校验大小端模式
Send addr function reg addr value
向指定的从机地址发送数据包,addr为从机地址,function为功能码,reg addr为寄存器地址,value为用户数据
Rx buffer cache number
从缓冲区读取的字节数
Read rx data
读取接收的数据包,适用于自定义处理
Get rx addr function data
用回调的方式接收数据包,通过变量接收参数,参数自动更新
主要功能:(从机代码见下方说明)连接两台M5Stack,通过Modbus建立主机和从机,主机按下A/B按键下发数据,并接收从机返回的数据包(接收功能码2),数据包处理方式有以下两种:
1.通过LOOP处理从机返回的数据包,在屏幕上显示。
根据Modbus协议定义,从机返回数据包至少包含3个有效数据(地址、功能码、数据),因此大于3字节视为有效数据,通过列表对数据进行解析处理
设置三个变量分别接收从机返回的地址、功能码、数据
创建一个Modbus从机,接收ModBus封装的数据包,通过串行接口与主机通讯,数据取值范围0-65535。
Init addr baud tx rx in uart
对通讯接口进行初始化操作,可指定从机地址、波特率、发送引脚、接收引脚、串口号,CRC校验为大端模式
Init function reg addr value method
定义Modbus数据操作格式,function为功能码,reg addr为寄存器地址, value为初始默认值, method为读或写操作模式
Update function reg addr value
按功能码对指定的寄存器地址内数据进行更新
Get rx buffer data
读取缓冲区数据
Get reg write function reg addr value
用回调的方式获取主机发来的数据包(功能码、寄存器地址、数据),通过变量进行接收,需要自行处理
Get function reg addr value
获取指定的主机数据包内容,通过功能码、寄存器地址进行指定
send addr function reg addr value
接收到主机数据包后向主机回应发送的数据包内容
主要功能:(主机代码见上方说明)连接两台M5Stack,通过Modbus建立主机和从机,从机接收到地址码1,功能码1,寄存器地址1的数据包后解析数据,数据为1点亮LED Bar,数据为2熄灭LED Bar,同时从机实时更新自身相应数据,并对主机做出回应(通过功能码2),从机自身通过A/B按键操作也会实时将数据上报给主机。实现方式有以下两种:
1.通过LOOP处理从机返回的数据包,及时更新数据在屏幕上显示,并进行响应。
接收指定的数据包并解析数据,判断数据做出响应并上报主机(通过功能码2),按A/B键对自身响应,并向主机发送数据包报告状态(通过功能码2)
设置三个变量分别接收主机发送的地址、功能码、数据,使用列表获取数据,对数据进行判断处理,同时将状态通过(功能码2)上报主机。手动按A/B键在自身响应的同时也会上报主机(通过功能码2).