K210 Maix Bit串口通信指南
k210——串口通信
k210 一共有3个 uart,每个 uart 可以进行自由的引脚映射。
一、API函数介绍
1.1 register(pin, function, force=True)
K210 可以通过映射来改变引脚功能,设置引脚(pin)对应的外设功能(func),默认启用强制绑定参数(force=True)
pin: 功能映射引脚
function: 芯片功能
force: 默认为True,强制分配,多次对一个引脚注册
例:
from fpioa_manager import fm
fm.register(16, fm.fpioa.GPIO2)
1.2 新建UART对象
uart = machine.UART(uart,baudrate,bits,parity,stop,timeout, read_buf_len)
uart: UART号
baudrate: 波特率
bits: UART数据宽度,默认8位
parity: 奇偶校验位,默认none
stop: 停止位,默认1
timeout: 串口接收超时时间
read_buf_len: 串口接收缓冲
例:
uart = UART(UART.UART1, 115200, 8, 0, 1, timeout=1000, read_buf_len=4096)
1.3 uart.read(num)
num: 读取字节数量,一般为缓冲大小
返回值: 返回bytes类型的数据
1.4 uart.write(buf)
buf: 需要发送的数据
返回值: 写入的数据量
1.5 str.decode(encoding=‘UTF-8’,errors=‘strict’)
在python中,使用unicode类型作为编码的基础类型,但其存储空间大,在存储和传输比较麻烦,所以要转成可变长编码的UTF-8编码,果要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。
str.decode(encoding='UTF-8',errors='strict')
encoding: 要使用的编码,utf-8,gb2312,cp936,gbk等
如果以utf-8的编码对str进行解码得到的结果,将无法还原原来的字符串内容
u2 = str.decode('utf-8')
二、例程
from machine import UART,Timer
from fpioa_manager import fm
#映射串口引脚
fm.register(9, fm.fpioa.UART1_RX, force=True)
fm.register(10, fm.fpioa.UART1_TX, force=True)
#初始化串口
uart = UART(UART.UART1, 115200, 8, 0, 1, timeout=1000, read_buf_len=4096)
#向串口发送数据
uart.write('caicai\r\n')
while True:
data=uart.read() #串口助手发送并读取数据
if data: #如果读取到了数据
print(data.decode('utf-8')) #REPL打印
uart.write('receive '+data.decode('utf-8')+'\r\n') #数据回传到串口助手显示