学习后的知识总结

1.中断服务函数ISR执行时间必须尽可能短,
禁止在ISR中执行业务逻辑、禁止使
用time.sleep()阻塞延时,会阻塞其他中断,造成系统卡死、看门狗复位。
2. exti.disable()用于在中断回调内临时关闭外部中断,避免按键抖动毛刺反复触发中断;启动osTimer实现非阻塞延时消
抖,业务逻辑放到定时器回调函数中执行;消抖处理完成后调用exti.enable()重新开启中断,响应下一次按键。
3.中断捕获的边沿信号可能是机械抖动产生
的虚假信号,定时器回调函数内必须重新读取引脚实际电平,不能直接依靠ISR触发沿判断按键状态,否则会出现误触发。
4. osTimer为软件定时器,依靠系统调度,适合按键消抖这类普通延时;硬件定时器machine.Timer硬件外设驱动,定时精度更高。