pdf-icon

UIFlow Guide

UIFlow 1.0 Blockly

Event

Unit

Atomic Base

UIFlow 1.0 Project

Module RS232

案例程序

初始化 RS232 通信模块(UART1),并在循环中检查是否有剩余缓存数据,如果有,则读取并显示所有字节数据,同时生成一个随机整数
from m5stack import *
from m5ui import *
from uiflow import *
import module

setScreenColor(0x00006d)

rand = None

rs232 = module.get(module.RS232)

import random

rs232_1 = rs232.init(1, tx=17, rx=16, baudrate=9600, data_bits=8, stop_bits=1, parity=None)
while True:
  if rs232_1.any():
    print((str('show all bytes:') + str((rs232_1.read()))))
  rand = random.randint(100000, 999999)
  wait_ms(2)

功能说明

any()
  • 检查并保留RS232模块的缓存数据。用于读取未处理的输入数据
rs232.init(1, tx=17, rx=16, baudrate=9600, data_bits=8, stop_bits=1, parity=None)
  • 初始化RS232通信模块,设置UART接口的ID、传输(TX)引脚、接收(RX)引脚、波特率、数据位、停止位和奇偶校验位等参数。必须在使用其他RS232功能之前进行初始化
    • UART ID: 使用的UART接口编号
    • TX引脚: 连接到发送端的引脚编号
    • RX引脚: 连接到接收端的引脚编号
    • 波特率: 通信速度(如9600)
    • 数据位: 每个数据帧的位数(如8位)
    • 停止位: 每帧后用于停止的位数(如1位)
    • 奇偶校验: 数据传输的错误检测机制(如无奇偶校验)
read()
  • 从RS232模块读取所有可用的字节数据。这个操作会读取缓存中所有的数据,直到没有更多的字节可读为止
readline()
  • 从RS232模块读取一行数据。通常会读取到换行符或者某个指定的结束符才停止
read(10)
  • 从RS232模块读取指定数量的字符(图中为10个字符)。它会读取指定的字符数量然后停止
write(''+"\r\n")
  • 将指定的文本通过RS232模块写出(发送)到连接的设备或系统。此操作会发送完整的字符串
write(''+"\r\n")
  • 将指定的文本作为一行通过RS232模块写出(发送),并在文本末尾自动添加一个换行符(如 \n)。这常用于按行发送数据
write(bytes([0, 0, 0]))
  • 将一个包含原始数据(如字节数组)的列表通过RS232模块写出(发送)。这种方式允许发送二进制数据,而不仅仅是文本字符串
On This Page