跳转到内容

按键中断调试提示词范例

请帮助我完成并验证当前 STM32 工程中的按键外部中断开发,解决按一次触发多次、长按误判或中断不进入的问题。请检查并修改工程代码,构建、烧录后用真实按键操作与调试日志完成验证;不要依据代码推测按键实际电平。
目标平台为 STM32,以项目真实引脚和时钟配置为准。按键一端连接 GPIO,另一端接 VCC 或 GND,可能使用内部/外部上下拉。短按需要产生一次事件;长按超过 1 秒产生长按事件;中断服务函数中不得执行延时、阻塞日志或业务处理。
请完成:
- 找到 GPIO、EXTI、NVIC、SysTick/时间基、按键状态机和事件消费者代码;
- 核对引脚模式、上下拉、电平有效极性、EXTI 线映射、上升/下降沿、NVIC 优先级和中断标志清除;
- 实施最小的非阻塞消抖方案:ISR 只记录边沿与时间戳或发送事件,任务/主循环在稳定窗口后确认按键状态;
- 记录原始边沿次数、确认后的短按/长按事件、时间戳、队列发送失败和中断进入次数;
- 重新构建烧录,分别执行 100 次短按、20 次长按和快速连按测试,统计误触发、漏触发和最大事件延迟;
- 最终说明引脚/极性配置、修改文件、日志或调试证据、验收统计及仍需确认的硬件上拉/电容项。