STM32 DMA串口不定长数据收发+FreeRTOS操作系统 参考代码
项目描述
本项目提供了一个基于STM32F103RCT6的参考代码,适用于正点原子mini开发板或其他兼容的STM32F103RCT6开发板。代码使用了CubeMX封装的FreeRTOS操作系统,实现了以下功能:
- 呼吸灯效果:通过PA8引脚外接LED灯,实现呼吸灯效果。
- DMA串口数据收发:使用UART1的DMA+双缓存方式接收不定长数据,并将接收到的数据长度和内容即时存放到队列中。另一个任务会从队列中取出数据,并通过串口返回给上位机。
使用说明
- 硬件准备:
- 正点原子mini开发板或其他兼容的STM32F103RCT6开发板。
- 外接LED灯,连接到PA8引脚。
- 串口连接线,用于与上位机通信。
- 软件准备:
- 使用STM32CubeMX生成初始化代码。
- 将本仓库中的代码文件替换或添加到生成的工程中。
- 代码说明:
stm32f1xx_it.c
文件中包含了所有的DMA处理逻辑,建议直接查看该文件以了解DMA的具体实现。- 由于CubeMX在每次代码初始化时可能会打乱中文注释,因此代码中使用了英文注释。
注意事项
- 本代码适用于STM32F103RCT6系列芯片,其他型号的STM32芯片可能需要进行适配。
- 代码中的注释为英文,以避免CubeMX初始化时打乱中文注释的问题。
参考文章
如果你是从我的文章中找到这个项目的,可以直接查看stm32f1xx_it.c
文件,所有的DMA处理逻辑基本就写在这个文件里面啦~
贡献
欢迎提交Issue和Pull Request,共同完善这个项目。
许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。