6.1.4. 串口控制¶
znzpi AI相机由多个串口,其中UART2为linux调试串口,UART0为蓝牙串口,UART1可以自由使用。
import pyb
uart = pyb.UART(3, 115200, timeout_char = 1000)
首先,我们看一下如何设置。UART的第一个参数,是znzpi AI相机的UART总线的id。这个参数必须使用在UART的结构中,是因为我们已经不在 pyb
这个MicroPython的模块中。第二个参数是波特率,一个表面发送速率的参数。最后第三个参数告诉驱动在如果UART忙,发送字符的时候的等待时间。默认的 timeout_char
是0
一旦获得了UART的对象,就可以轻松的发送数据,就像:
uart.write("Hello World\n")
就是这样
但是,如果你想发送二级制数据,则需要使用 struct
模块, struct
模块将允许你轻松的将数据序列化,下面是例子:
import ustruct
uart.write(ustruct.pack("<lhb", a_32_bit_value, a_16_bit_value, a_8_bit_value))
第一行告诉ustruct如何打包数据到二进制流。< 意思是将数据打包成小端的数据格式,l表示打包成长整型,h表示打包成短整型,b表示打包成二进制,具体见 Python Struct Module
如果你需要接收数据,只需要用 pyb.UART.any()
方法以及 pyb.UART.read()
方法。注意为了接收稳定,你需要编写一些状态机代码。例如 Examples->Pixy Emulation->pixy_uart_emulation.py
这个例子。