K210学习记录(2)——UART(串口)

这篇博客记录了作者学习K210单片机过程中,关于UART中断和DMA的使用。内容包括UART中断接收并储存数据,UART DMA收发数据的尝试,以及如何设置和使用K210的双串口功能。通过实例代码展示了串口配置和中断回调的实现,提供了相关测试结果和参考资料。
摘要由CSDN通过智能技术生成

0、引言

本系列博客仅作为本人学习K210单片机的学习记录,主要学习其内部资源使用,作为初学者难免有错误之处,如有发现还望指出。
硬件:Sipeed Maix Dock开发板(推荐官方KD233开发板)
软件:Kendryte IDE(基于VS Code 开发)
文档:
Kendryte IDE使用手册
Standalone SDK编程指南
芯片技术规格书
SDK:
Kendryte SDK
MaixPy/drive

在这里插入图片描述

1、UART——interrupt

以下代码为官方代码库“kendryte_uart-interrupt-standalone”修改而成,实现的功能为将电脑发送的字符串,在中断回调函数中存入缓存v_buf中,字符串接收完成后,再将v_buf中的数据上传回电脑。管脚配置如下所示
在这里插入图片描述

main.c

#include <fpioa.h>
#include <gpio.h>
#include <stdio.h>
#include <string.h>
#include <sysctl.h>
#include <uart.h>


//UART_NUM位于uart.h中 ,用于定义所使用的串口号
//#define UART_NUM UART_DEVICE_3
uint32_t v_uart_num = UART_NUM;

//打印字符串,通过指针
void uart_print(const char const *str) {
   
  uart_send_data(UART_NUM, str, strlen(str));
}

//发送中断回调函数(想不到用途)
int on_uart_send(void *ctx) {
   
  uint8_t v_uart = *((uint32_t *)ctx) + 1 + 0x30;
  //注销中断函数,保证该功能单次使用,否则会陷入局部死循环。
  uart_irq_unregister(UART_NUM, UART_SEND);

  uart_print("Send ok Uart\n");                  //测试用
  uart_send_data(UART_NUM, (char *)&v_uart, 1);  //标准发送程序,位于uart.c
  return 0;
}

int main() {
   
  plic_init();//中断初始化
  sysctl_enable_irq();//开启系统中断
  uart_init(UART_NUM); //初始化配置串口。通道3
  uart_configure(UART_NUM, 115200, 8, UART_STOP_1, UART_PARITY_NONE);
  //接收中断或 DMA 触发 FIFO 深度,当 FIFO 中的数据大于等于该值时触发中断或 DMA传输。
  uart_set_receive
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值