⌚ 智能手表固件工程
30 章 · 从零到量产
🎯 友好色系
1
智能手表概述
发展历程 · RTOS vs LiteOS vs FreeRTOS · 课程目标与学习路径
📘 概念
系统对比
2
开发环境搭建
STM32U5 硬件平台 · STM32CubeIDE / ARM GCC · J-Link/ST-Link 配置
⚙️ 工具链
调试器
3
固件工程结构
创建CubeIDE工程 · 目录解析 · 链接脚本与启动文件详解
📁 工程
链接脚本
4
GPIO与按键驱动
GPIO模式 · 外部中断 · 消抖算法 · 实战:按键唤醒
🔘 按键
中断
5
系统时钟与定时器
时钟树 HSE/LSE/PLL · SysTick · PWM · 实战:呼吸灯
⏱️ 时钟
PWM
6
UART串口通信
UART配置 · 中断接收 · 环形缓冲区 · 实战:调试日志
📡 串口
环形缓冲
7
I2C总线与传感器
I2C协议 · 主机/从机 · LIS3DH驱动 · 实战:加速度数据
📟 传感器
I2C
8
SPI总线与显示屏
SPI模式0/1/2/3 · ST7789驱动 · 帧缓冲 · 实战:静态图片
🖥️ 显示
SPI
9
电源管理
低功耗 Sleep/Stop/Standby · DVFS · 电池监测 · 待机优化
🔋 低功耗
ADC
10
FreeRTOS基础
任务创建/删除 · 优先级调度 · 状态转换 · 实战:双LED闪烁
🧠 RTOS
任务
11
FreeRTOS同步机制
信号量 · 互斥锁 · 队列 · 实战:按键事件驱动
🔗 同步
队列
12
FreeRTOS高级
软件定时器 · 任务通知 · 流缓冲区 · 实战:传感器采集
⏰ 定时器
通知
13
内存管理
堆栈分析 · heap_1~heap_5 · 内存泄漏检测 · 碎片优化
💾 内存
MPU
14
文件系统
LittleFS移植 · 文件读写 · 掉电安全 · 实战:存储配置
📂 文件
LittleFS
15
图形用户界面 LVGL
LVGL移植 · 控件体系 · 样式主题 · 实战:主菜单界面
🎨 LVGL
GUI
16
触摸屏驱动
电容触摸 · FT6336驱动 · 手势识别 · 实战:滑动翻页
👆 触摸
手势
17
蓝牙通信 BLE
BLE协议栈 GAP/GATT · 广播扫描 · 服务特征值 · 数据同步
📶 BLE
手机App
18
Wi-Fi通信 ESP32 AT
AT指令 · TCP/UDP · MQTT · 实战:云端获取天气
📡 Wi-Fi
MQTT
19
传感器融合
加速度+陀螺仪 · 互补滤波 · 计步算法 · 抬手亮屏
🧮 融合
计步器
20
心率与血氧监测
PPG信号 · 心率算法 · 血氧计算 · 实战:实时心率显示
❤️ 心率
血氧
21
通知系统
通知数据结构 · 队列管理 · 震动马达 · 实战:来电通知
🔔 通知
震动
22
表盘定制
指针表盘 Canvas · 数字表盘 · 实战:模拟指针表盘
🕐 表盘
Canvas
23
运动模式
状态机 · GPS NMEA · 运动轨迹 · 实战:记录跑步轨迹
🏃 运动
GPS
24
语音交互
ADPCM编解码 · PDM麦克风 · TFLite Micro · 实战:语音唤醒
🎤 语音
AI
25
OTA升级
Bootloader/App分区 · 差分升级 · 回滚机制 · BLE OTA
🔄 OTA
差分
26
安全与加密
AES/RSA硬件引擎 · Secure Boot · 固件签名 · 加密健康数据
🔐 安全
加密
27
性能优化
循环展开 · 中断延迟 · DMA缓存 · 实战:UI帧率优化
⚡ 优化
DMA
28
测试与调试
Unity/CMock · 逻辑分析仪 · 日志分级 · 自动化按键测试
🧪 测试
调试
29
生产与烧录
J-Flash/STM32CubeProg · 序列号 · 产测固件 · 脚本实战
🏭 量产
烧录
30
项目总结与展望
架构回顾 · FAQ · eSIM/支付/NFC · 社区资源推荐
🎯 总结
未来