单片机代码执行原理#
中断#
- 抢占优先级
- 子优先级
虚函数#
前缀 __weak
若实函数存在则用实函数,否则使用虚函数
工程配置#
- 按键
- 查找引脚
- 设置外部中断通道
- 检测模式选择
- 输入模式选择
- 使能
1 | void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ |
中断代码分析#
1 | void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) |
按键消抖#
在中断函数中延时检测#
1 | void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ |
略过了不稳定时间
很不优雅,而且会影响其他线程执行
硬件消抖#
外部并联电容器,消除高频杂波
TIM定时器#
定时检测按键状态,在下一课进行讲解