作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数字输入 GPIO
线,只要它的输入发生变化,我就需要一个中断。在 STM32CubeMX
中,我将此引脚设置为 EXTI
线,并将中断设置为在上升沿和下降沿触发。
当调用函数 HAL_GPIO_EXTI_Callback()
以响应上升沿或下降沿时,有没有办法知道是上升沿还是下降沿触发了中断?或者是否需要调用 HAL_GPIO_ReadPin()
来推断这一点?
回调的原型(prototype)是:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
最佳答案
您必须调用 HAL_GPIO_ReadPin()
.
当您在上升沿和下降沿都选择中断时,STM32CubeMX 实际上会设置 Rising trigger selection register (EXTI_RTSRx)
中的相应位。在Falling trigger selection register (EXTI_FTSRx)
.
当中断发生时,Pending register (EXTI_PRx)
中只设置一位对于该中断线,因此您不知道它是上升沿还是下降沿。
关于arm - HAL_GPIO_EXTI_Callback() 中的上升沿和下降沿触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48707854/
我有一个数字输入 GPIO 线,只要它的输入发生变化,我就需要一个中断。在 STM32CubeMX 中,我将此引脚设置为 EXTI 线,并将中断设置为在上升沿和下降沿触发。 当调用函数 HAL_GPI
我是一名优秀的程序员,十分优秀!