Meh*_*gın 2 embedded arm stm32 cortex-m
我有一条数字输入GPIO线,每当输入发生变化时我都需要中断。在STM32CubeMX我将此引脚设置为一条EXTI线并将中断设置为在上升沿和下降沿触发。
当响应上升沿或下降沿HAL_GPIO_EXTI_Callback()调用该函数时,有没有办法知道是上升沿还是下降沿触发了中断?还是有必要打电话HAL_GPIO_ReadPin()来推断这一点?
回调的原型是:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
Run Code Online (Sandbox Code Playgroud)
您将不得不致电HAL_GPIO_ReadPin()。
当您在上升沿和下降沿选择中断,STM32CubeMX实际上是设置在相应的位Rising trigger selection register (EXTI_RTSRx),并在Falling trigger selection register (EXTI_FTSRx)。
当中断发生时,该中断线中只设置一位Pending register (EXTI_PRx),因此您不知道它是上升沿还是下降沿。