基于FreeRTOS的实时控制项目实战
📚 共计 30 章节
01
课程导学与项目全景
实时操作系统概念 · FreeRTOS简介 · 四轴飞行器飞控需求 · 开发板选型与环境搭建
导学
项目概览
02
FreeRTOS内核基础
任务创建与删除 · 任务状态与优先级 · 抢占式/时间片调度
内核
任务
03
任务管理与调度实战
多任务LED闪烁 · 任务参数传递 · 空闲任务与钩子函数
实战
调度
04
队列(Queue)深度解析
队列工作原理 · 创建/发送/接收 · 传感器数据采集应用
队列
IPC
05
队列实战:多传感器数据融合
使用队列实现MPU6050与气压计数据同步
传感器
同步
06
信号量(Semaphore)机制
二值信号量 · 计数信号量 · 互斥信号量与优先级反转
信号量
互斥
07
信号量实战:任务同步与资源保护
使用互斥量保护I2C总线访问
互斥量
I2C
08
事件组(Event Group)
事件标志位 · 等待与设置 · 多事件同步模型
事件组
同步
09
事件组实战:飞行模式切换
手动/定高/悬停模式的事件驱动切换
飞行模式
事件
10
任务通知(Task Notification)
轻量级信号量/队列替代 · 通知值操作
任务通知
轻量
11
任务通知实战:高效按键扫描
基于任务通知的按键响应与消抖
按键
通知
12
软件定时器(Software Timer)
单次/周期定时器 · 回调函数 · 定时器服务任务
定时器
回调
13
软件定时器实战:姿态解算与心跳
姿态解算周期控制 · 心跳LED
姿态
心跳
14
中断管理
FreeRTOS中断安全API · 延迟中断处理 · 临界区与嵌套
中断
临界区
15
中断实战:外部触发与任务通知
外部中断采集 · 通知任务处理
外部中断
通知
16
内存管理
heap_1~heap_5对比 · 动态/静态分配 · 内存碎片
内存
heap
17
内存管理实战:飞控缓冲区优化
优化飞控数据缓冲区分配
优化
缓冲区
18
低功耗Tickless模式
Tickless原理 · 进入/退出低功耗 · 延长电池续航
低功耗
Tickless
19
MPU6050驱动与I2C通信
I2C协议 · MPU6050初始化 · 原始数据读取
MPU6050
I2C
20
姿态解算基础
四元数 · 欧拉角 · 互补滤波算法原理与实现
姿态
滤波
21
姿态解算任务化
互补滤波封装为独立任务 · 队列输出姿态角
任务化
队列
22
PID控制算法
位置式/增量式PID · 参数整定 · 积分限幅与抗饱和
PID
控制
23
PID控制任务化
串级PID(角度环+角速度环)控制任务
串级PID
任务
24
PWM驱动与电机控制
PWM原理 · 电机调速 · 电调校准
PWM
电机
25
遥控器信号解析
PPM信号解码 · 通道映射 · 摇杆数据读取任务
遥控器
PPM
26
飞行控制状态机
初始化 · 自检 · 解锁 · 飞行 · 降落状态设计
状态机
飞控
27
系统集成与联调
任务优先级分配 · 堆栈估算 · 系统Tick配置
集成
联调
28
调试与性能分析
内核调试 · 栈溢出检测 · CPU利用率统计
调试
性能
29
项目总结与优化
常见Bug复盘 · 代码规范 · 版本管理建议
总结
规范
30
扩展与进阶
FreeRTOS+TCP · AWS FreeRTOS · 多核异构AMP/SMP
进阶
网络