从零玩转CanMV-K230(6)- UART例程

该文章已生成可运行项目,


前言

本章介绍基于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,并提供了一个使用案例

本文章已经生成可运行项目
要下载 CanMV-K230 软件,您可以通过以下几种方式获取相关的开发资源和软件包: 1. **官方资源**:访问嘉楠科技的官方网站或其开发者社区,查找 CanMV-K230 的相关资源页面。通常,官方会提供 SDK、固件更新、示例代码以及详细的开发文档[^2]。 2. **GitHub 仓库**:许多开发板的软件资源都会托管在 GitHub 上。您可以搜索嘉楠科技或香蕉派开源社区的官方 GitHub 仓库,找到 CanMV-K230 的项目页面。例如,可以查找 `k230_sdk` 或 `CanMV-K230` 相关的仓库,获取源代码和编译工具链[^3]。 3. **社区支持**:加入 CanMV 或 RISC-V 开发者社区,获取最新的软件版本和开发指南。这些社区通常会有论坛、QQ 群、微信群等交流渠道,方便开发者获取帮助和分享经验。 4. **开发环境搭建**:在获取软件包后,您需要配置相应的开发环境。例如,在 Linux 系统中,您可以进入 `k230_sdk/src/big/rt-smart/` 目录,并运行 `source smart-env.sh` 来配置 RISC-V 编译环境。该环境将使用 `riscv64-unknown-linux-musl-gcc` 作为编译器,用于构建和烧录 CanMV-K230 的固件[^3]。 5. **示例项目**:如果您是初学者,可以从官方提供的示例项目开始,如 `Hello World` 示例,逐步了解 CanMV-K230 的开发流程。这些示例通常包括 ADC、UART、FFT 等功能的实现,帮助您快速上手[^1]。 ### 示例代码 以下是一个简单的 `Hello World` 示例代码,适用于 CanMV-K230 开发环境: ```c #include <stdio.h> int main() { printf("Hello World\n"); return 0; } ``` 在编译此代码时,请确保您已经正确配置了 RISC-V 工具链,并使用 `riscv64-unknown-linux-musl-gcc` 进行编译。 ### 相关问题 1. CanMV-K230 的开发环境如何配置? 2. 如何在 CanMV-K230 上运行第一个程序? 3. CanMV-K230 支持哪些外设接口? 4. 如何在 CanMV-K230 上实现 FFT 运算? 5. CanMV-K230 是否支持 AI 推理功能?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶与花语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值