前言
本章介绍基于MicroPython的外设开发案例,在开始之前请确认使用的MicroPython镜像,可以参考 从零玩转CanMV-K230(2)- 环境搭建
K230 芯片内部集成了 5 个 UART 硬件模块,其中 UART0 被小核(sh)占用,UART3 被大核(sh)占用,剩余的 UART1、UART2 和 UART4 供用户使用。用户在使用时,可通过 IOMUX 模块进行 UART 引脚的配置。
一、UART原理图
二、UART API
UART 类位于 machine 模块中。
uart = UART(id, baudrate=115200, bits=UART.EIGHTBITS, parity=UART.PARITY_NONE, stop=UART.STOPBITS_ONE, timeout = 0)
参数
id: UART 模块编号,有效值为 UART1、UART2、UART4。
baudrate: UART 波特率,可选参数,默认值为 115200。
bits: 每个字符的数据位数,有效值为 FIVEBITS、SIXBITS、SEVENBITS、EIGHTBITS,可选参数,默认值为 EIGHTBITS。
parity: 奇偶校验,有效值为 PARITY_NONE、PARITY_ODD、PARITY_EVEN,可选参数,默认值为 PARITY_NONE。
stop: 停止位数,有效值为 STOPBITS_ONE、STOPBITS_TWO,可选参数,默认值为 STOPBITS_ONE。
timeout: 读数据超时,单位为 ms
UART.init(baudrate=115200, bits=UART.EIGHTBITS, parity=UART.PARITY_NONE, stop=UART.STOPBITS_ONE)
配置 UART 参数。
参数
参考构造函数。
返回值
无
UART.read([nbytes])
读取字符。如果指定了 nbytes,则最多读取该数量的字节;否则,将尽可能多地读取数据。
参数
nbytes: 最多读取的字节数,可选参数。
返回值
返回一个包含读取字节的字节对象。
UART.readline()
读取一行数据,并以换行符结束。
参数
无
返回值
返回一个包含读取字节的字节对象。
UART.readinto(buf[, nbytes])
将字节读取到 buf 中。如果指定了 nbytes,则最多读取该数量的字节;否则,最多读取 len(buf) 数量的字节。
参数
buf: 一个缓冲区对象。
nbytes: 最多读取的字节数,可选参数。
返回值
返回读取并存入 buf 的字节数。
UART.write(buf)
将字节缓冲区写入 UART。
参数
buf: 一个缓冲区对象。
返回值
返回写入的字节数。
UART.deinit()
释放 UART 资源。
参数
无
返回值
无
三、UART 示例代码
示例代码使用 UART2进行收发测试
硬件连接如下:
from machine import UART
from machine import FPIOA
# 实例化FPIOA
fpioa = FPIOA()
# 设置PIN60为PWM通道0
fpioa.set_function(5, fpioa.UART2_TXD)
fpioa.set_function(6, fpioa.UART2_RXD)
# UART2: baudrate 115200, 8bits, parity none, one stopbits
uart = UART(UART.UART2, baudrate=115200, bits=UART.EIGHTBITS, parity=UART.PARITY_NONE, stop=UART.STOPBITS_ONE)
# UART write
r = uart.write("UART test")
print(r)
# UART read
r = uart.read()
print(r)
# UART readline
r = uart.readline()
print(r)
# UART readinto
b = bytearray(8)
r = uart.readinto(b)
print(r)
测试结果
总结
本章介绍了UART的使用方法,API,并提供了一个使用案例