【微雪 RP2040双核开发板】测试6——UART通信
《微雪 RP2040双核开发板》具有丰富的外部接口,有2 个 UART,分别是UART0、UART1,对应的引脚分别是TX0(GPIO0)、RX0(GPIO1)、TX1(GPIO8)、RX1(GPIO9)。引脚下图。
本文主要介绍如何利用微雪RP2040双核开发板Micropython内置库模块machine的UART功能进行串口通信。
三、machine.UART类函数详解
1、UART对象构造函数
machine.UART(id,baudrate=115200,bits=8,parity=None,stop=1,tx=None,rx=None):
作用为初始化对应通道和引脚。各参数意义:
id:使用的UART通道,为0或者1;
baudrate: 波特率参数,取值可参考串口波特率取值
bits:数据位长度(现阶段仅8位有效)
parity:奇偶校验位,取值为None或1
stop:停止位长度,可取1,2
tx:TXD引脚,为Pin对象,取0或者8
rx:RXD引脚,为Pin对象,取1或者9。
注意:TXD为0,RXD只能为1;TXD为8,RXD只能为9。
2、UART.any()
any函数,用于检测当前接收缓冲区是否有数据,接收缓冲区有数据就返回1,否则返回0。
3、UART.read([nbytes])
read函数,用于读取字符串。
nbytes:如果指定了’nbytes,则最多读取这么多字节,否则读取尽可能多的数据。
4、UART.readline()
readline函数,读取一行,以换行符为结束标志。
UART.readinto(buf[, nbytes])
readinto:将读取字符串存入指定缓存中
buf:用于指定缓存
nbytes:如果指定了“nbytes”,则最多读取这么多字节,否则读取尽可能多的数据。
readinto函数,将读取字符串存入指定缓存中 buf用于指定缓存 nbytes和上文中read函数nbytes作用一致。
5、UART.write(buf)
write函数,用于发送字符串,返回值发送的字节数。
buf: 发送字符串 write函数用于发送字符串,并返回发送的字节数。 参数buf为需要发送的字符串。
6、UART.sendbreak()
sendbreak函数在总线上发送停止信号。 这会将总线驱动为低电平的时间比字符正常传输所需要的时间更长。
二、RP2040与CH340串口USB的连接
将RP2040的GPIO8、GPIO9发表人接CH340的RX和TX,在PC端打开串口通信软件XCOM,选择正确的串口(本例为COM4)。
三、运行
程序如下:
from machine import UART, Pin
import time
uart1 = UART(1, baudrate=115200, bits=8,parity=None,stop=1,tx=Pin(8), rx=Pin(9))
txData = b'Hello world! UART!\r\n'
uart1.write(txData)
time.sleep(0.1)
while True:
rxData =bytes()
AA=uart1.any()
print(AA)
time.sleep(1)
if AA > 0:
rxData =uart1.read(AA)
print(rxData.decode('utf-8'))
运行结果:
PC端XCOM软件:
Thonny环境:
四、总结
利用微雪RP2040的UART通信端口可以方便与其他设备实现数据传送,代码简单,运行可靠。有利于扩大RP2040的应用范围。