类 UART -- 双工串行通信总线
UART 实现标准的 UART/USART 双工串行通信协议。在物理层面,它由 2 条线组成:RX 和 TX。通信使用字节进行(不要与字符串混淆)。
构造函数
- class machine.UART(id, ...)
构造一个 UART 对象
id- 串口编号: 1, 2
UART(id=0)用于 REPL,不能使用!from machine import UART from machine import Pin uart = UART(1, baudrate=115200, rx=Pin.P15, tx=Pin.P16, timeout=10)
方法
- UART.init(baudrate=9600, bits=8, parity=None, stop=1, *, ...)
使用给定参数初始化 UART 总线
baudrate- 波特率bits- 每个字符的位数,7、8 或 9。parity- 校验位: 0 表示偶校验,1 表示奇校验rx,tx- UART 读写引脚stop- 停止位数量: 1 或 2timeout- 超时时间(毫秒)< timeout ≤ 0x7FFF FFFF(十进制: 0 < timeout ≤ 2147483647)txbuf- 指定 TX 缓冲区的字符长度rxbuf- 指定 RX 缓冲区的字符长度
注意
所有引脚都可以用作串行输入 RX,除了
P2、P3、P4、P10只能用作输入,其他所有引脚理论上都可以用作输出 TX。GPIO 1和GPIO 3用于 mPython 板的 USB 串口。当初始化 UART 定义tx和rx引脚时,通常不使用它们,除非你想使用 mPython 板的 USB 接口作为串行输出。
- UART.deinit()
关闭 UART 总线。
- UART.any()
返回一个整数,表示可以无阻塞读取的字符数。如果没有可用字符,将返回 0;如果有字符,将返回一个正数。即使有多个字符可用,它也可能返回 1。
对于更复杂的可用字符查询,请使用 select.poll:
poll = select.poll() poll.register(uart, select.POLLIN) poll.poll(timeout)
- UART.read([nbytes])
读取字符。如果指定了
nbytes,最多读取该数量的字节,否则读取尽可能多的数据。返回值: 包含读取字节的字节对象。超时返回
None。
- UART.readinto(buf[, nbytes])
读取字节到
buf。如果指定了nbytes,最多读取该数量的字节。否则,最多读取len(buf)字节。返回值: 读取并存储到
buf的字节数,或超时返回None。
- UART.readline()
读取一行,以换行符结束。
返回值: 读取的行或超时返回
None。
- UART.write(buf)
将
buf中的字节写入总线。返回值: 写入的字节数或超时返回
None。
- UART.sendbreak()
在总线上发送一个中断条件。这会使总线保持低电平的时间长于正常传输字符所需的时间。