🫀
血压计裸机开发实战
📘 ARM Cortex-M0+
🎯 30章 · 从入门到产品
01
ARM Cortex-M0+ 内核架构速览
寄存器组 · 工作模式 · 异常处理与向量表 · 存储器映射
02
开发环境搭建
Keil MDK 安装与配置 · J-Link 驱动 · 第一个裸机工程模板
03
GPIO 基础与寄存器操作
推挽/开漏 · 上拉/下拉 · 位带操作
04
系统时钟配置
HSI/HSE · PLL倍频 · 时钟树 · SysTick定时器
05
SysTick 精准延时
寄存器级配置 · 中断延时 · 毫秒/微秒封装
06
UART 串口通信
帧格式 · 波特率 · 轮询/中断 · printf重定向
07
血压计核心传感器 – 压力传感器
XGZP6847选型 · 模拟信号 · ADC采样需求
08
ADC 模块详解
逐次逼近型 · 分辨率/采样率 · 单次/连续 · 校准
09
DMA 数据传输
DMA原理 · 通道配置 · ADC联动 · 双缓冲
10
血压测量原理
示波法 · 充放气过程 · 收缩/舒张压判定 (幅度系数法)
11
气泵与电磁阀驱动
MOS管控制 · PWM电磁阀 · 充放气时序
12
定时器与 PWM 输出
通用定时器 · PWM模式 · 占空比调节 · 线性放气
13
I2C 总线通信
I2C时序 · 主机从机 · 读写EEPROM (AT24C02)
14
SPI 总线通信
四线制时序 · 模式选择 · 驱动OLED (SSD1306)
15
LCD 液晶显示驱动
字符/汉字 · 清屏刷新 · 菜单界面 · 结果布局
16
按键输入与消抖
机械抖动 · 硬件/软件消抖 · 状态机 · 长按/短按
17
看门狗与低功耗设计
IWDG · WWDG · 睡眠/停止模式 · 唤醒源
18
Flash 存储器读写
内部Flash操作 · 页擦除/写入 · 历史记录存储
19
实时时钟 (RTC)
时钟源选择 · 日期时间 · 闹钟中断 · 时间戳
20
血压计状态机设计
空闲/充气/测量/放气/完成/错误 · 状态转换图
21
信号处理基础
滑动平均滤波 · 中值滤波 · 一阶RC数字滤波 · 去运动伪迹
22
脉搏波特征点提取
脉搏波形态 · 最大斜率点 · 波峰波谷 · 时间参数
23
血压算法实现
幅度系数法(K值法) · K值选择 · 异常剔除 · 多次平均
24
数据存储与管理
历史记录结构体 · 循环缓冲区 · Flash磨损均衡 · 导出协议
25
蓝牙通信模块
HC-08/BLE · AT指令 · 透传模式 · 手机APP对接
26
UI 交互界面设计
菜单层级 · 设置界面 · 测量动画 · 结果展示
27
异常处理与容错机制
超时检测 · 漏气检测 · 传感器故障 · 蜂鸣器报警
28
系统集成与调试
模块联调 · 逻辑分析仪 · 串口日志 · 常见问题排查
29
产品化与可靠性测试
EMC防护 · 电池管理 · 低功耗续航 · 医疗器械标准
30
项目总结与扩展
代码架构回顾 · 可移植性 · RTOS移植展望 · 开源社区