问题描述
串口(UART)作为嵌入式开发中最常用的通信接口,是设备间数据传输的“桥梁”!
想快速掌握 K230 的串口使用技巧?这篇指南帮你轻松上手👇
一、芯片串口资源
K230芯片内置5个独立UART硬件模块:
- UART0被系统调试串口占用
- UART1~4开放给用户自由配置
可以根据自己的板子情况,选择TX和RX并配置成UART使用
| 串口号 | 引脚组1 | 引脚组2 | 引脚组3 |
|---|---|---|---|
| UART1 | TX:GPIO3 RX:GPIO4 |
TX:GPIO9 RX:GPIO10 |
TX:GPIO40 RX:GPIO41 |
| UART2 | TX:GPIO5 RX:GPIO6 |
TX:GPIO11 RX:GPIO12 |
TX:GPIO44 RX:GPIO45 |
| UART3 | TX:GPIO50 RX:GPIO51 |
TX:GPIO32 RX:GPIO33 |
TX:GPIO28 RX:GPIO29 |
| UART4 | TX:GPIO36 RX:GPIO37 |
TX:GPIO48 RX:GPIO49 |
需通过芯片 GPIO 进行配置,非开发板引出的引脚顺序(需按芯片原生定义操作)
二、准备工作
- K230开发板(确保已烧录CanMV固件)
- CanMV IDE
- 杜邦线(连接K230与其他设备)
三、硬件准备
将K230开发板(我们用庐山派示例)与目标设备(我们用树莓派PICO为例)按以下方式连接:
庐山派提供了双排针扩展,可以看到这里UART1~4有扩展出来供大家使用。
我们以UART1为例,说明与PICO的连接。在这里UART1对应GPIO3和GPIO4,需要把这两个GPIO配置成串口。

PICO我们选择UART0,对应PICO的GP0和GP1
| K230 引脚 | 方向 | PICO 引脚 |
|---|---|---|
| TX (GPIO3) | → | RX (GP0) |
| RX (GPIO4) | ← | TX (GP1) |
| GND | ↔ | GND |
物理连接如下图所示:

四、MicroPython 串口通信代码
打开CanMV IDE,连接K230,Copy本示例代码(K230完成数据发送的任务):
from machine import UART
from machine import FPIOA
import time
# 实例化FPIOA
from machine import FPIOA
fpioa = FPIOA()
#设置pin3为串口1发送管脚
fpioa.set_function(3, fpioa.UART1_TXD)
#设置pin4为串口1接收管脚
fpioa.set_function(4, fpioa.UART1_RXD)
#UART: baudrate 115200, 8bits, parity none, one stopbits
uart = UART(UART.UART1, baudrate=115200, bits=UART.EIGHTBITS, parity=UART.PARITY_NONE, stop=UART.STOPBITS_ONE)
#打印串口配置
print(uart)
i=0
while True:
#print( "xxx %d" % (0) )
uart.write("i={0}".format(i))
i=i+1
time.sleep(0.1)
可以看到PICO把接收到的数据不停的打印在串口上:

五、测试与调试
如果在使用过程中遇到问题,可以尝试以下手段调试:
1. 连接电脑验证:
用USB转TTL模块连接K230的调试串口(通常为UART0)。
打开串口调试工具(波特率115200),运行代码,查看输出。
2. 与其他设备通信:
将K230的TX/RX连接到目标设备(如PICO)。
在目标设备上运行串口回环程序,验证双向通信。
3. 常见问题:
无响应:检查引脚连接是否正确,波特率是否一致。
乱码:可能是波特率不匹配或硬件干扰,尝试降低波特率。
六、总结
通过MicroPython,K230可以轻松实现串口通信,无需复杂编译,直接用脚本快速开发!无论是连接传感器、控制器还是其他开发板,串口都是最基础且实用的通信方式。赶紧动手试试吧~
庐山派CanMV镜像下载:
https://www.kendryte.com/zh/resource?selected=0-0-3-0
庐山派官方UART参考资料:
https://wiki.lckfb.com/zh-hans/lushan-pi-k230/basic/uart.html