打印
[STM32G0]

STM32G0 HAL EXTI 回调函数是否存在错误

[复制链接]
58|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
柴库柴库|  楼主 | 2025-4-13 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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);  }}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

12

帖子

0

粉丝