UART类 – 双工串行通信总线¶
UART实现标准UART / USART双向串行通信协议。其物理层包括两条线:RX和TX。通信单元是一个可为8位或9位宽的字符(请勿与字符串字符混淆)。
UART对象可使用下列方式创建并初始化:
from machine import UART
uart = UART(1, 9600) # init with given baudrate 使用给定波特率初始化
uart.init(9600, bits=8, parity=None, stop=1) # init with given parameters 使用给定参数初始化
所支持的参数在一个板上有所不同:
Pyboard/OpenMVCam:位数可为7、8、9。终止可为1或2。当parity为None时,仅支持8位和9位。启用parity时,仅支持7位和8位。
WiPy/CC3200:位数可为5、6、7、8。终止可为1或2。
UART对象的运行类似于流对象,其读写都使用标准流方法进行:
uart.read(10) # read 10 characters, returns a bytes object 读取10字符,返回一个字节对象
uart.read() # read all available characters 读取所有可用字符
uart.readline() # read a line 读取一个行
uart.readinto(buf) # read and store into the given buffer 读取并存入给定缓冲区
uart.write('abc') # write the 3 characters 写入3字符
方法¶
-
UART.
deinit
()¶ 关闭UART总线。
-
UART.
any
()¶ 返回一个整数,该整数即为在不阻塞情况下可读取的字符数。若无可用字符,则返回0,;若有可用字符,则返回一个正数。若有超过1个可读取字符,该方法则返回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)¶ 将字节缓冲区写入总线。
返回值:写入的字节数;若超时,则返回
None
。
-
UART.
sendbreak
()¶ 在总线上发送一个中断状态。这使得总线在一段时间内保持低状态,其持续时间比字符的正常传输所需时间长。