题目关键词 → 现成模块
| 题目文字 | 直接使用 | 必须确认 |
|---|---|---|
| 按键、下降沿、计数、长按 | pollButton / poll_button | 有效电平、消抖时间、长按阈值 |
| 每隔、周期、闪烁、超时 | GPTimer 10 ms 节拍 + 状态机 | 周期是完整周期还是单次翻转时间 |
| 触摸、导电片 | TOUCH CAL 与绝对差值检测 | 启动校准时手不能碰导电片 |
| 模拟量、电压、分档 | ADC1 GPIO1、16 次去极值平均 | 输入不超过 3.3 V、阈值单位 |
| 上位机、串口指令 | 现成行协议解析器 | 波特率、结束符、大小写、错误回复 |
| 掉电保存、记忆参数 | SAVE/LOAD/FACTORY | 首次启动默认值、保存时机 |
| 全彩灯、颜色 | 内置 RMT WS2812 驱动 | GPIO38/48、RGB/GRB 顺序 |
| 蜂鸣、音调 | LEDC PWM | 有源/无源、频率、持续时间 |
Arduino API 速查
| 功能 | 直接使用 | 注意事项 |
|---|---|---|
| GPIO | pinMode/digitalRead/digitalWrite | 按键使用内部上拉时按下为 LOW |
| 中断 | attachInterrupt | ISR 内只记录事件 |
| 硬件定时器 | timerBegin/timerAlarmWrite | 本机 Arduino Core 2.0.17 API |
| Touch | touchRead | 先校准再判断绝对变化量 |
| ADC | analogReadMilliVolts | 0–3.3 V,优先 ADC1 |
| 串口 | Serial/HardwareSerial | 文本与二进制协议不能混用同一端口 |
| NVS | Preferences | 保存结构体版本和校验 |
| 蜂鸣器/PWM | ledcWriteTone/ledcWrite | 不同输出使用不同 LEDC 通道 |
现场改题顺序
- 修改配置文件里的引脚,先编译一次。
- 只保留题目要求的输入输出,确认电气连接。
- 把题目状态写成 0、1、2 等枚举或状态表。
- 把按键、Touch、串口都转成事件,再由状态机处理。
- 最后调整时间、阈值、颜色和串口文案。
- 每完成一个评分点就单独验收,禁止等全部写完再测试。
安全 GPIO
本工具包通用命令仅允许 GPIO1–18、GPIO21、GPIO38–42、GPIO47–48。N8R8 默认避开 GPIO35–37;避免 GPIO0、GPIO3、GPIO45、GPIO46 启动绑带脚,以及 GPIO19/20 USB 接口和 GPIO43/44 调试串口。