硬件STM32F407,IDE使用RT-Thread Studio。
uart2串口使用这两个引脚:
| 功能 | IO端口 |
|---|---|
| UART2-TX | PA2 |
| UART2-RX | PA3 |
UART2 - DMA接收配置
-
先使能DMA接收,RX缓冲区可以稍微调大些。

-
board.h 中添加宏,来使能 RX_DMA。

-
既然都打开了 board.h,再顺便把时钟源改为外部晶振。

-
编写 UART2 DMA 接收测试代码。
-
发生接收事件后,会触发回调。回调内记录本次接收的消息长度,并发送信号量。线程内接收到信号量后开始执行后续的任务,调试输出接收到的长度和内容。
main.c
#include <rtthread.h>
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
#include "drivers/serial.h"
rt_device_t u2_dev = RT_NULL;
struct serial_configure u2_cfg = RT_SERIAL_CONFIG_DEFAULT;
struct rt_semaphore u2_rx_sem;
rt_thread_t u2_recv_thread;
rt_size_t u2_rx_len = 0;
rt_err_t

本文档详细介绍了如何在STM32F407硬件上使用RT-Thread Studio IDE配置UART2串口的DMA接收,包括设置RX缓冲区、编写回调函数、启动接收线程,以及解决可能出现的串口接收断帧问题。同时,作者分享了自己学习RT-Thread的原因和体验,强调了国产MCU生态建设的重要性。
1310

被折叠的 条评论
为什么被折叠?



