STM32G0 HAL EXTI 回调函数是否存在错误
STM32G0 HAL EXTI 回调实现是错误的。根据 UM2319 rev 1 第 3.11.2 节,它说:用户必须从 stm32g0xx_it.c 调用 HAL_GPIO_EXTI_IRQHandler() 并实现 HAL_GPIO_EXTI_Callback()STM32G0 HAL 不遵循此流程,而所有其他 HAL 系列(例如:F0、F4、F7、G4、L1)HAL 都遵循此流程。在实际代码中,STM32G0 HAL 驱动程序在 stm32g0xx_hal_gpio.c 中实现 EXTI 中断处理程序,如下所示:void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin){/* EXTI line interrupt detected */if (__HAL_GPIO_EXTI_GET_RISING_IT(GPIO_Pin) != 0x00u){ __HAL_GPIO_EXTI_CLEAR_RISING_IT(GPIO_Pin); HAL_GPIO_EXTI_Rising_Callback(GPIO_Pin);} if (__HAL_GPIO_EXTI_GET_FALLING_IT(GPIO_Pin) != 0x00u){ __HAL_GPIO_EXTI_CLEAR_FALLING_IT(GPIO_Pin); HAL_GPIO_EXTI_Falling_Callback(GPIO_Pin);}}
页:
[1]