pdf-icon

UIFlow 上手教程

UiFlow1 Blockly

Event

Unit

UiFlow1 项目配置

Hat RS485

案例程序

RS485 数据写入

from m5stack import *
from m5ui import *
from uiflow import *
import hat

setScreenColor(0x111111)

hat_rs485_0 = hat.get(hat.RS485)

rx_data = None

label0 = M5TextBox(74, 0, "RS485 Demo", lcd.FONT_Default, 0xFFFFFF, rotate=90)
label1 = M5TextBox(52, 0, "Press btn Hello M5!", lcd.FONT_Default, 0xFFFFFF, rotate=90)
rxdata = M5TextBox(25, 0, "0", lcd.FONT_Default, 0xFFFFFF, rotate=90)

def buttonA_wasPressed():
  global rx_data
  hat_rs485_0.write('Hello M5!'+"\r\n")
  pass
btnA.wasPressed(buttonA_wasPressed)

hat_rs485_0.init(1, baudrate=9600, data_bits=8, stop_bits=1, parity=None, ctrl_pin=None)
while True:
  rx_data = hat_rs485_0.read()
  if rx_data != None:
    rxdata.setText(str(rx_data))
  wait_ms(2)

功能说明

hat_rs485_0.init(1, baudrate=9600, data_bits=8, stop_bits=1, parity=None, ctrl_pin=None)
  • RS485 硬件初始化(配置波特率、数据位、停止位等参数)
print((str('cache:') + str((hat_rs485_0.any()))))
  • 通用数据读取
print(hat_rs485_0.read())
  • 读取设备获取的所有数据
print((str('line:') + str((hat_rs485_0.readline()))))
  • 按行读取数据
print(hat_rs485_0.read(10))
  • 获取字符流数据
print((str('coils:') + str((hat_rs485_0.read_coils(1, 1, 0)))))
  • 获取读取线圈状态
print((str('discrete:') + str((hat_rs485_0.read_discrete_inputs(1, 1, 0)))))
  • 读取离散输入
print((str('holding:') + str((hat_rs485_0.read_holding_registers(1, 1, 0, True)))))
  • 读取保持寄存器
print((str('input:') + str((hat_rs485_0.read_input_registers(1, 1, 0, True)))))
  • 读取输入寄存器
hat_rs485_0.write('')
  • 数据写入
hat_rs485_0.write(''+"\r\n")
  • 按行写入数据
print((str('multiple coils:') + str((hat_rs485_0.write_multiple_coils(1, 1, 0)))))
  • 批量写入线圈
print((str('multiple register:') + str((hat_rs485_0.write_multiple_registers(1, 1, 0, True)))))
  • 批量写入寄存器
hat_rs485_0.write(bytes([0, 0, 0]))
  • 原始数据写入
print((str('single coil:') + str((hat_rs485_0.write_single_coil(1, 1, 0)))))
  • 写入单个线圈
print((str('single register:') + str((hat_rs485_0.write_single_register(1, 1, 0, True)))))
  • 写入单个寄存器
On This Page