串口¶
该uart
模块允许您使用串行接口与连接到您的电路板的设备进行通信。
职能¶
-
microbit.uart.
init
(baudrate=9600, bits=8, parity=None, stop=1, *, tx=None, rx=None)¶ 使用指定的
tx
和rx
引脚上的指定参数初始化串行通信。请注意,为了正确通信,两个通信设备上的参数必须相同。警告
在外部引脚上初始化 UART 将导致 USB 上的 Python 控制台无法访问,因为它使用相同的硬件。要恢复控制台,您必须重新初始化 UART,而不为
tx
或者rx
传递任何内容 ,(或传递None
给这些参数)。这意味着调用uart.init(115200)
足以恢复 Python 控制台。该
baudrate
定义的通信的速度。常见的波特率包括:- 9600
- 14400
- 19200
- 28800
- 38400
- 57600
- 115200
该
bits
定义中的字节大小被发送,和所述板仅支持8.parity
参数定义的奇偶校验是如何检查,并且它可以是None
,microbit.uart.ODD
或microbit.uart.EVEN
。该stop
参数表示停止位的数量,对于该板必须为 1。如果
tx
和rx
未指定,则使用内部 USB-UART TX/RX 引脚连接到 micro:bit 上的 USB 串行转换器,从而将 UART 连接到您的 PC。您可以通过将所需的引脚对象传递给tx
和rx
参数来指定所需的任何其他引脚。笔记
连接设备时,请确保“交叉”电线——电路板上的 TX 引脚需要与设备上的 RX 引脚相连,而 RX 引脚需要与设备上的 TX 引脚相连。还要确保两个设备的接地引脚都已连接。
-
uart.
any
()¶ True
如果有数据在等待,则返回,否则返回False
。
-
uart.
read
([nbytes])¶ 读取字节。如果
nbytes
指定,则最多读取那么多字节,否则读取尽可能多的字节。返回值:一个字节对象或
None
超时。一个 bytes 对象包含一个字节序列。因为 ASCII 字符可以放在单个字节中,这种类型的对象通常用于表示简单的文本并提供操作方法,例如您可以使用该
print()
函数显示文本。您还可以将此对象转换为字符串对象,如果存在非 ASCII 字符,则可以指定编码:
msg_bytes = uart.read() msg_str = str(msg, 'UTF-8')
笔记
所有 UART 读取的超时取决于波特率,否则无法通过 Python 更改。超时时间(以毫秒为单位)由下式给出:
microbit_uart_timeout_char = 13000 / baudrate + 1
笔记
内部 UART RX 缓冲区为 64 字节,因此请确保在缓冲区已满之前读取数据,否则部分数据可能会丢失。
警告
接收
0x03
将通过引发键盘中断来停止您的程序。您可以使用micropython.kbd_intr()
.
-
uart.
readall
()¶ 从 1.0 版开始移除。
相反,使用
uart.read()
不带参数,这将读取尽可能多的数据。
-
uart.
readinto
(buf[, nbytes])¶ 将字节读入
buf
. 如果nbytes
指定,则最多读取那么多字节。否则,最多读取len(buf)
字节。返回值:读取并存储到
buf
或None
超时时的字节数。
-
uart.
readline
()¶ 读取一行,以换行符结尾。
返回值:读取或
None
超时的行。换行符包含在返回的字节中。
-
uart.
write
(buf)¶ 将缓冲区写入总线,它可以是字节对象或字符串:
uart.write('hello world') uart.write(b'hello world') uart.write(bytes([1, 2, 3]))
返回值:写入或
None
超时的字节数。