自上篇文章STM32 非阻塞HAL_UART_ReceiveIT解析与实际应用,具体总结了HAL库下套娃函数中如何看清库函数的脉络,更细致的认识调用的过程,以解决潜在的问题。又又又遇到了新的问题(GPIO按键中断),感觉网络上和各种资料都没解释清楚的情况下。我又去扒了扒HAL库函数源码,提供不一样解决按键抖动的问题(个人认为除了那些通过配置具体寄存器的外;是从HAL库提供函数的基础上解决的)有别于那种在Callback返回函数中添加延迟和判断具体是否按下按键的方法(个人实际操作感觉这种方法效果也不好)。而是在HAL_GPIO库函数上的HAL_GPIO_EXTI_IRQHandler处理中断函数解决按键抖动带来的问题,是更根上解决问题的方法。
前言Yume-知乎文章www.zhihu.com
在这里,还是以我一贯的风格——不重复造轮子。具体如何配置STM32CubeMX初始化、生成工程目录之类的问题。包括关于STM32的Cortex-M3处理器的中断细节都不会在本文章中赘述,想了解的朋友可以自行去翻看“Cortex-M3 权威指南”、“Cortex-M3 技术手册”等相关技术文档,都有中文的翻译版本。本文的目的只在如何具体分析问题,解决问题。
1 STM32CubeMX中GPIO配置(基于正点原子的Stm32F1-Nano板)
像如何配置RCC、配置相关的时钟树、配置中断NVIC、配置中断输入等基础配置,生成工程文件的问题。这里就省略了,有需要的朋友可以参考其他网络上资料。重点就看看关于GPIO配置,便于后面分析讲解代码。
其