UART – 通用异步收发传输器

UART实现标准UART / USART双向串行通信协议。其物理层包括两条线:RX和TX。通信单元是一个可为8位或9位宽的字符。


使用示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from machine import UART

uart = UART(2, 9600)
uart.init(9600, bits=8, parity=None, stop=1)

uart.write('hello')
uart.read(5)

uart.write('hello')
uart.readline()

uart.write('hello')
uart.read()

uart.write('hello')
buf=bytearray(10)
uart.readinto(buf)

函数接口


machine_uart.UART(id)[源代码]

构造一个具有给定id的UART对象。

参数

id – 设备索引号,每个硬件设备支持的通道数目受硬件限制,具体设备数目请参考硬件手册。HaaS硬件默认提供4个设备。

返回

UART 类句柄

引发

ValueError – EINVAL

machine_uart.init(baudrate=115200, bits=8, parity=None, stop=1)[源代码]

用给定的参数初始化UART总线:

参数
  • baudrate – 波特率

  • bits – 每个字符的位数,可选数值为5,6,7,8或9。默认是8bit

  • parity – 是奇偶校验,None,0(偶数) 或 1(奇数)。

  • stop – 停止位的数目,1 或 2

返回

None

machine_uart.deinit()[源代码]

关闭UART总线。

参数

返回

None

machine_uart.read(nbytes)[源代码]

读取字符。若指定 nbytes,则最多读取该数量的字节。否则可读取尽可能多的数据。

参数

value – None 或者 nbytes

返回

一个包括读入字节的字节对象。超时则返回 None

machine_uart.readinto(buf, nbytes)[源代码]

将字节读取入 buf。若指定 nbytes ,则最多读取该数量的字节。否则,最多读取 len(buf) 数量的字节。

参数

buf – 读取数据的缓存

返回

读取并存入 buf 的字节数;若超时则返回 None 。

machine_uart.readline()[源代码]

读取一行,并以一个换行符结束。

:param : None :returns: 读取的行;若超时,则返回 None 。

machine_uart.write(buf)[源代码]

将字节缓冲区写入总线。

参数

buf – 待写入数据的缓存

返回

写入的字节数;若超时,则返回 None。

machine_uart.sendbreak(buf, nbytes)[源代码]

在总线上发送一个中断状态。这使得总线在一段时间内保持低状态,其持续时间比字符的正常传输所需时间长。(HaaS 设备暂不支持该接口)