🧹 扫地机器人 HAL
从零搭建 · 30章
⚡ 风格 · 轻松入门
01
课程导论
什么是硬件抽象层(HAL)?为什么扫地机器人需要HAL?课程目标与学习路径。
02
开发环境搭建
嵌入式C开发工具链(GCC、Makefile)、硬件仿真环境(QEMU模拟STM32)、版本控制(Git基础)。
03
GPIO抽象层(一)
GPIO基础概念、寄存器操作、封装GPIO初始化与读写接口。
04
GPIO抽象层(二)
实现中断回调机制、边缘触发与电平触发、中断优先级管理。
05
UART抽象层(一)
UART协议基础、波特率配置、轮询模式收发接口设计。
06
UART抽象层(二)
环形缓冲区实现、中断驱动收发、DMA传输集成。
07
I2C抽象层(一)
I2C总线协议、主从模式、起始/停止条件封装。
08
I2C抽象层(二)
多设备通信仲裁、超时处理、错误恢复机制。
09
SPI抽象层(一)
SPI模式选择(CPOL/CPHA)、全双工通信接口设计。
10
SPI抽象层(二)
DMA与SPI结合、多从设备片选管理、高速传输优化。
11
定时器抽象层(一)
系统滴答定时器、基本定时器封装、微秒/毫秒延时实现。
12
定时器抽象层(二)
PWM生成、输入捕获(测距传感器触发)、输出比较。
13
ADC抽象层
ADC分辨率与采样率配置、多通道扫描、DMA搬运数据。
14
电机驱动抽象层(一)
直流有刷电机H桥原理、PWM调速接口、方向控制。
15
电机驱动抽象层(二)
编码器接口抽象、速度闭环(PID)集成、堵转检测。
16
传感器抽象层(一)
碰撞传感器(机械微动开关)、悬崖传感器(红外对管)接口封装。
17
传感器抽象层(二)
激光雷达(LDS)数据解析、UART通信协议封装。
18
传感器抽象层(三)
陀螺仪与加速度计(IMU)I2C驱动、姿态解算数据融合。
19
电池管理抽象层
电量监测(ADC分压)、充电状态检测、低电量报警机制。
20
Wi-Fi/蓝牙通信抽象层
AT指令集封装、数据透传、OTA升级触发接口。
21
存储抽象层(一)
Flash驱动抽象(读/写/擦除)、参数存储与校验(CRC)。
22
存储抽象层(二)
EEPROM模拟、文件系统(LittleFS)移植与接口封装。
23
显示与交互抽象层
OLED屏幕驱动(I2C/SPI)、按键扫描(矩阵/ADC)、蜂鸣器控制。
24
实时操作系统(RTOS)集成
FreeRTOS任务创建、队列与信号量在HAL中的应用。
25
HAL层错误处理与日志
统一错误码定义、断言机制、串口日志分级输出。
26
HAL层单元测试框架
Unity/CMock测试框架集成、Mock外设接口、测试用例编写。
27
HAL层性能优化
中断延迟分析、临界区保护、缓存一致性(DCache/ICache)。
28
HAL层文档与代码规范
Doxygen注释生成、编码风格(MISRA-C子集)、版本管理。
29
综合实战(一)
将各模块HAL集成到扫地机器人原型机,实现手动遥控与传感器数据采集。
30
综合实战(二)
实现自主清扫逻辑(随机碰撞+沿墙)、HAL层压力测试与调优、课程总结与展望。