如何在K230上用MicroPython实现串口通信

Viewed 68

问题描述


串口(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 进行配置,非开发板引出的引脚顺序(需按芯片原生定义操作)

二、准备工作

  1. K230开发板(确保已烧录CanMV固件)
  2. CanMV IDE
  3. 杜邦线(连接K230与其他设备)

三、硬件准备

将K230开发板(我们用庐山派示例)与目标设备(我们用树莓派PICO为例)按以下方式连接:
庐山派提供了双排针扩展,可以看到这里UART1~4有扩展出来供大家使用。

我们以UART1为例,说明与PICO的连接。在这里UART1对应GPIO3和GPIO4,需要把这两个GPIO配置成串口。

image.png

PICO我们选择UART0,对应PICO的GP0和GP1

K230 引脚 方向 PICO 引脚
TX (GPIO3) RX (GP0)
RX (GPIO4) TX (GP1)
GND GND

物理连接如下图所示:
image.png

四、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把接收到的数据不停的打印在串口上:
image.png

五、测试与调试

如果在使用过程中遇到问题,可以尝试以下手段调试:

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

1 Answers