Logo

郎哥嵌入式编程

30天FreeRTOS+STM32企业级实战训练营

从RTOS基础到企业项目落地 · 全流程实战教程

模块1:FreeRTOS基础(8天,每天2.5小时,RTOS核心入门)

第1天:FreeRTOS入门与环境搭建

•理论课(1小时):RTOS核心概念(实时操作系统定义、优势),FreeRTOS选型原因(入门友好、企业常用),FreeRTOS与裸机开发的区别(多任务vs单任务),企业开发中RTOS的应用场景(物联网、工业控制)。

•实操课(1.5小时):在STM32CubeMX中配置FreeRTOS(添加FreeRTOS组件),生成Keil工程,熟悉FreeRTOS工程结构(任务函数、调度器初始化),编译运行第一个FreeRTOS程序(空任务)。

•作业:完成FreeRTOS环境搭建,新建工程,创建1个空任务,确保工程能正常编译运行。

第2-3天:FreeRTOS任务创建与配置

•第2天理论课(1小时):FreeRTOS任务相关概念(任务控制块、任务栈、任务状态),任务创建函数(xTaskCreate)参数详解,任务优先级配置(0-31级,优先级越高越先执行)。

•第2天实操课(1.5小时):用CubeMX+Keil创建2个任务(LED1闪烁任务、LED2闪烁任务),配置不同优先级,观察任务调度效果;理解“多任务并发”的实现逻辑,对比裸机循环开发的差异。

•第3天理论课(1小时):任务删除、挂起、恢复函数的使用,任务优先级调整方法,企业开发中任务管理的注意事项(避免频繁删除任务)。

•第3天实操课(1.5小时):完善任务代码,实现“任务挂起/恢复控制LED闪烁”,练习任务删除函数的使用;排查任务配置错误(如栈溢出、优先级冲突)。

•作业:创建3个任务(LED闪烁、串口发送、按键检测),配置不同优先级,实现任务的挂起、恢复与删除,完成实物实操。

第4-5天:FreeRTOS任务调度机制(核心理解)

•第4天理论课(1小时):FreeRTOS调度器工作原理(抢占式调度、时间片轮转调度),任务优先级的影响,系统时钟节拍(Tick)的概念,调度器启动流程。

•第4天实操课(1.5小时):通过修改任务优先级、时间片大小,观察任务调度效果;编写代码验证抢占式调度(高优先级任务打断低优先级任务),理解企业开发中优先级配置的原则。

•第5天理论课(1小时):空闲任务(FreeRTOS自动创建)的作用,空闲任务钩子函数的简单使用,任务栈大小配置技巧(避免栈溢出,企业开发重点)。

•第5天实操课(1.5小时):优化任务栈大小,使用空闲任务钩子函数实现简单的系统状态监测;排查栈溢出问题,掌握企业开发中任务栈配置的实用方法。

•作业:优化之前的3个任务,合理配置任务优先级和栈大小,添加空闲任务钩子函数,完成实物实操并记录调度效果。

第6-8天:FreeRTOS延时函数与任务阻塞

•第6天理论课(1小时):FreeRTOS延时函数(vTaskDelay、vTaskDelayUntil)的区别,任务阻塞状态的触发与解除,延时函数在企业开发中的应用(避免CPU占用过高)。

•第6天实操课(1.5小时):用vTaskDelay实现LED定时闪烁,用vTaskDelayUntil实现精准定时(如每隔1秒串口发送数据),对比两个延时函数的差异。

•第7-8天:综合练习,创建4个任务(LED定时闪烁、串口定时上报、按键检测、温湿度采集),使用延时函数实现任务阻塞,合理配置优先级,确保各任务正常运行;排查任务阻塞导致的异常问题。

•模块复盘:梳理FreeRTOS基础知识点(任务创建、调度、延时、阻塞),答疑解惑,强化基础,为后续任务通信铺垫。

模块2:FreeRTOS任务通信与同步(7天,每天2.5小时,企业开发必备)

第9-10天:FreeRTOS队列(核心通信方式)

•第9天理论课(1小时):队列的概念、作用(解决多任务间数据传递),队列创建、入队、出队函数详解,队列的特点(先进先出、异步通信),企业开发中队列的应用场景(传感器数据传递、指令传递)。

•第9天实操课(1.5小时):创建队列,实现“温湿度采集任务”向“串口上报任务”传递数据(采集到的温湿度通过队列发送,串口任务从队列中读取并上报);实物实操调试,确保数据传递稳定。

•第10天理论课(1小时):队列的阻塞机制(入队阻塞、出队阻塞),队列长度配置技巧,队列溢出的处理方法(企业开发重点)。

•第10天实操课(1.5小时):优化队列代码,添加阻塞机制,处理队列溢出问题;实现“按键控制任务”向“LED控制任务”传递指令(通过队列发送指令,控制LED模式切换)。

•作业:创建队列,实现3个任务间的数据传递(温湿度采集→OLED显示、按键指令→LED控制),完成实物实操。

第11-12天:FreeRTOS信号量与互斥锁

•第11天理论课(1小时):信号量的概念、作用(解决多任务同步、资源共享),二进制信号量、计数信号量的区别及应用场景,信号量创建、获取、释放函数详解。

•第11天实操课(1.5小时):用二进制信号量实现“按键触发LED闪烁”(按键任务释放信号量,LED任务获取信号量后闪烁);用计数信号量实现“多任务共享资源计数”(模拟企业设备计数场景)。

•第12天理论课(1小时):互斥锁的概念、作用(解决多任务资源竞争问题,避免死锁),互斥锁与信号量的区别,企业开发中死锁的避免方法。

•第12天实操课(1.5小时):用互斥锁解决“多任务同时操作OLED显示屏”的资源竞争问题(避免显示错乱);练习互斥锁的创建、获取、释放,掌握死锁排查方法。

•作业:用信号量实现任务同步,用互斥锁解决资源竞争,完成多任务协同控制,实物实操调试。

第13-15天:FreeRTOS事件标志组与综合练习

•第13天理论课(1小时):事件标志组的概念、作用(实现多任务间的多事件同步),事件标志组的创建、置位、清零、等待函数详解,企业应用场景(多传感器触发执行任务)。

•第13天实操课(1.5小时):用事件标志组实现“多传感器触发任务”(温湿度超标、按键按下,两个事件同时触发后执行报警任务);实物实操调试,理解事件标志组的同步逻辑。

•第14-15天:综合练习,整合队列、信号量、事件标志组,创建5个任务(温湿度采集、按键控制、OLED显示、串口上报、报警控制),实现多任务通信与同步,模拟企业设备控制逻辑;排查通信异常、资源竞争问题。

•模块复盘:梳理RTOS任务通信与同步核心知识点,总结企业开发中常用的通信方式,答疑解惑,为后续项目铺垫。

模块3:RTOS+STM32外设综合应用(5天,每天2.5小时,衔接企业场景)

第16-17天:RTOS+传感器+显示屏(数据采集与显示)

•第16天:理论课(1小时):企业中传感器数据采集的常用方案(RTOS多任务采集,避免数据丢失),RTOS驱动DHT11、OLED的注意事项;实操课(1.5小时):创建“温湿度采集任务”“OLED显示任务”,用队列传递采集数据,实现温湿度实时采集与显示;实物实操调试,优化数据采集频率。

•第17天:优化代码,添加数据滤波(避免传感器数据波动),实现“温湿度超标提示”(OLED显示报警信息);结合信号量,实现采集任务与显示任务的同步,贴合企业设备数据显示场景。

•作业:完善代码,实现温湿度实时采集、滤波、显示及超标报警,完成实物实操。

第18-19天:RTOS+蓝牙+继电器(无线控制场景)

•第18天:理论课(1小时):企业无线控制场景(蓝牙通信),RTOS驱动HC-05蓝牙模块的方法,蓝牙数据解析技巧;实操课(1.5小时):创建“蓝牙接收任务”“继电器控制任务”,用队列传递蓝牙指令,实现手机蓝牙控制继电器开关(模拟企业设备无线控制);实物实操调试,确保蓝牙通信稳定。

•第19天:拓展功能,实现“继电器状态上报”(继电器状态通过蓝牙发送到手机),结合互斥锁解决蓝牙接收与发送的资源竞争问题;优化蓝牙数据解析,避免指令错乱。

•作业:完成手机蓝牙控制继电器开关及状态上报,实现多任务协同,完成实物实操。

第20天:RTOS+多外设综合(企业设备模拟)

•实操课(2.5小时):整合所有外设(DHT11、OLED、蓝牙、继电器、LED),创建6个任务(采集、显示、蓝牙接收、蓝牙发送、继电器控制、报警),用RTOS通信与同步机制实现多外设协同工作(如手机蓝牙查看温湿度、控制继电器,温湿度超标自动报警);实物实操调试,排查多外设协同中的异常问题,贴合企业设备实际逻辑。

•模块复盘:梳理RTOS与STM32外设结合的核心技巧,总结企业设备开发的基本思路,为后续实战项目铺垫。

模块4:企业级实战项目(10天,每天3小时,RTOS落地应用)

项目1:智能温湿度监控终端(企业物联网节点,第21-25天)

•项目需求(贴合企业物联网场景):实现温湿度实时采集、滤波、OLED显示;通过串口上报温湿度数据(对接上位机);温湿度超标自动触发继电器报警(如控制风扇、报警器);支持手机蓝牙查看温湿度、设置报警阈值;多任务并发,确保数据采集、显示、上报、报警同步稳定运行。

•第21天:需求分析+架构设计(1小时理论+2小时实操):拆分任务模块(采集任务、显示任务、上报任务、报警任务、蓝牙任务),设计RTOS任务优先级、队列、信号量;搭建实物电路,用CubeMX配置FreeRTOS和外设。

•第22-23天:分模块编写代码(传感器采集、OLED显示、串口上报、蓝牙通信、报警控制),实现各模块独立功能;用队列、信号量实现任务通信与同步,模块化编程,遵循企业开发规范(添加代码注释、拆分函数)。

•第24天:模块整合,实现项目完整功能;调试数据采集精度、蓝牙通信稳定性、报警响应速度,排查多任务冲突、数据丢失等问题(企业开发常见故障)。

•第25天:项目优化,添加异常处理(如传感器故障提示、蓝牙断开重连),优化代码效率,符合企业开发规范;完成项目测试,记录开发流程、故障及解决方法(模拟企业项目文档)。

项目2:蓝牙控制智能设备(工业控制场景,第26-29天)

•项目需求(贴合工业控制场景):支持手机蓝牙发送指令,控制多个LED灯、继电器的开关及LED亮度调节;实时采集设备状态(LED、继电器状态),通过蓝牙上报到手机;支持指令校验,避免误操作;多任务并发,确保指令响应及时、状态上报准确,具备一定的稳定性和可扩展性。

•第26天:需求分析+架构设计(1小时理论+2小时实操):拆分任务模块(蓝牙接收、指令解析、LED控制、继电器控制、状态上报),设计RTOS任务调度方案;优化电路搭建,确保外设连接稳定。

•第27-28天:分模块编写代码,实现蓝牙指令接收与解析、LED亮度调节、继电器控制、状态上报;用互斥锁解决蓝牙通信与外设控制的资源竞争,用事件标志组实现多指令同步响应;遵循企业开发规范,编写可复用代码。

•第29天:项目整合与优化,调试指令响应速度、状态上报准确性,添加误指令过滤、异常恢复功能;完成项目测试,模拟工业控制场景下的设备运行,确保项目稳定可靠。

第30天:项目展示+综合考核+职场进阶指引

•考核(1小时):基础知识点问答(FreeRTOS核心、任务通信、企业开发规范),实操考核(调试项目功能、修改简单代码、排查常见故障)。

•项目展示(1.5小时):学员展示两个企业级实战项目,分享开发心得、故障排查经验,老师点评指导,优化项目细节,贴合企业实际需求。

•职场进阶指引(0.5小时):讲解嵌入式企业招聘要求(RTOS技能重点),后续进阶方向(FreeRTOS进阶、物联网协议、STM32高级外设、嵌入式Linux),给出职场学习建议,帮助学员衔接就业。

FreeRTOS+STM32实战训练营 © 版权所有 | 企业级嵌入式开发教程