参考代码如下:
-- 要传输的modbus数据modbus_data
local modbus_data = "\1\3\0\112\0\5" -- "\1\3\0\112\0\5"表示输入的数据相当于C的数组{0x01, 0x03, 0x00, 0x70, 0x00, 0x05}
-- 计算CRC
local modbus_crc_value = crypto.crc16("MODBUS", modbus_data) -- modbus_crc_value = 0x1284
-- 如果对端是标准modbus协议,大端封包
local modbus_crc_data = pack.pack('>H', modbus_crc_value)
-- 如果对端不是标准协议,小端封包
-- local modbus_crc_data = pack.pack('<H', modbus_crc_value)
-- 如果传输通道为串口1,就通过串口1发出modbus数据与crc
uart.write(1, modbus_data .. modbus_crc_data)