STM32搭载FreeRTOS实现任务消息队列串口通信完整项目代码实测

2024-10-19

STM32搭载FreeRTOS实现任务+消息队列+串口通信完整项目代码[实测]

项目介绍

本项目是一个基于STM32F103微控制器的工程,集成了FreeRTOS实时操作系统,实现了两个任务之间的消息队列通信以及串口通信功能。具体功能如下:

  1. 任务一:每秒发送一个数字到消息队列。
  2. 任务二:接收来自任务一和串口中断的数据,并打印这些数据。
  3. 串口通信:采用DMA+闲时中断方式接收数据,并将接收到的数据转发到消息队列中。
  4. USART重定义:将USART重定义到printf,方便通过TTL查看打印的队列数据,并支持通过串口发送数据到队列。

项目结构

  • Core/Src:包含主程序文件和FreeRTOS配置文件。
  • Core/Inc:包含头文件。
  • Drivers:包含STM32F1 HAL库文件。
  • Middlewares:包含FreeRTOS源码。

使用说明

  1. 硬件需求
    • STM32F103开发板
    • USB转TTL模块(用于串口通信)
  2. 软件需求
    • STM32CubeMX
    • Keil uVision或其他STM32开发环境
  3. 编译与烧录
    • 使用STM32CubeMX生成工程文件。
    • 在Keil uVision中打开生成的工程文件。
    • 编译工程并烧录到STM32F103开发板。
  4. 运行与测试
    • 连接USB转TTL模块到开发板的串口引脚。
    • 打开串口调试工具(如Putty或SecureCRT),设置波特率等参数。
    • 运行程序,观察串口调试工具中的打印信息。

注意事项

  • 确保FreeRTOS配置正确,特别是任务优先级和堆栈大小。
  • 串口通信参数(波特率、数据位、停止位、校验位)需与串口调试工具设置一致。
  • 在修改代码时,注意任务和中断的同步问题,避免资源竞争。

贡献

欢迎任何形式的贡献,包括但不限于代码优化、功能扩展、文档改进等。请提交Pull Request或Issue进行交流。

许可证

本项目采用MIT许可证,详情请参阅LICENSE文件。


希望本项目能帮助你更好地理解和应用STM32与FreeRTOS的结合,实现高效的任务管理和串口通信。如有任何问题,请随时联系。

下载链接

STM32搭载FreeRTOS实现任务消息队列串口通信完整项目代码实测