STM32搭载FreeRTOS实现任务+消息队列+串口通信完整项目代码[实测]
项目介绍
本项目是一个基于STM32F103微控制器的工程,集成了FreeRTOS实时操作系统,实现了两个任务之间的消息队列通信以及串口通信功能。具体功能如下:
- 任务一:每秒发送一个数字到消息队列。
- 任务二:接收来自任务一和串口中断的数据,并打印这些数据。
- 串口通信:采用DMA+闲时中断方式接收数据,并将接收到的数据转发到消息队列中。
- USART重定义:将USART重定义到printf,方便通过TTL查看打印的队列数据,并支持通过串口发送数据到队列。
项目结构
Core/Src
:包含主程序文件和FreeRTOS配置文件。Core/Inc
:包含头文件。Drivers
:包含STM32F1 HAL库文件。Middlewares
:包含FreeRTOS源码。
使用说明
- 硬件需求:
- STM32F103开发板
- USB转TTL模块(用于串口通信)
- 软件需求:
- STM32CubeMX
- Keil uVision或其他STM32开发环境
- 编译与烧录:
- 使用STM32CubeMX生成工程文件。
- 在Keil uVision中打开生成的工程文件。
- 编译工程并烧录到STM32F103开发板。
- 运行与测试:
- 连接USB转TTL模块到开发板的串口引脚。
- 打开串口调试工具(如Putty或SecureCRT),设置波特率等参数。
- 运行程序,观察串口调试工具中的打印信息。
注意事项
- 确保FreeRTOS配置正确,特别是任务优先级和堆栈大小。
- 串口通信参数(波特率、数据位、停止位、校验位)需与串口调试工具设置一致。
- 在修改代码时,注意任务和中断的同步问题,避免资源竞争。
贡献
欢迎任何形式的贡献,包括但不限于代码优化、功能扩展、文档改进等。请提交Pull Request或Issue进行交流。
许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。
希望本项目能帮助你更好地理解和应用STM32与FreeRTOS的结合,实现高效的任务管理和串口通信。如有任何问题,请随时联系。