资料索引:
- 原理图与 PCB 设计:赛博魔杖_STM32卷积神经网络 | PCB_Main | 嘉立创EDA(专业版) - V2.2.36
- 源代码仓库:🐈⬛lyg09270/Cyberry_Potter_Electromagic_Wand: 一根可以通过在空中画出不同的形状来控制的魔杖(像真正的巫师一样).
模块功能总结
硬件和代码主要实现了以下功能:
- 获取按键的按下、长按、松开状态
- 通过按键状态控制对传感器的读取行为
获取按键的按下、长按、松开状态
按键被按下时触发了外部中断,在中断处理中记录当前按键开关状态和上一次开关状态(按下或松开),累加状态计数器,进而判断按键状态。
STM32F103CBT6 引脚定义
原理图如下, user_button 模块连接 PA0-WKUP 引脚。当触发沿从引脚输入时触发中断,由程序获取按键状态。

WKUP: 唤醒功能,与本文关系应该不大。
PA0, P 即 PIN (引脚)、A 即 (GIOP 的 A 组引脚)、0 即组内的第零号。
按键原理图
原作者使用了 TS24CA 和 ZX-QC34-2TPD 两种轻触开关,但是电路设计上有所不同, reset_button 和 boot0_button 分别使用了上拉电阻和下拉电阻,而 user_button 并没有…

由于打算使用 HH-D02 芯片和独立的 MPU-6050 模块,所以可能还需自行设计控制器来开启动作识别的功能,不过也能在软件逻辑上规避一下这个问题~
代码部分:中断与定时器消抖
待续…
通过按键状态控制对传感器的读取行为
这部分在主循环中进行…