以前写代码,一些固定的代码总喜欢复制粘贴,然后在G0系列使用外部中断的时候。发现死活触发不了,一路检查了CubeMX的配置以及硬件连接,均发现没问题,然后发现G0系列的外部中断回调函数和F1系列的不一样,以下列举的是配置下降沿触发模式,主要差异如下:
F1系列的外部中断回调函数如下
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin==EXIT_Pin)
{
// to do
__HAL_GPIO_EXTI_CLEAR_IT(EXIT_Pin);
}
}
G0系列的外部中断回调函数如下
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin==EXIT_Pin)
{
// to do
__HAL_GPIO_EXTI_CLEAR_IT(EXIT_Pin);
}
}
可以发现函数明不一样,G0的指明了触发条件,写本文的目的是希望各位以此作为前车之鉴。