STM32中的GPIO额外中断

时间:2017-12-12 14:48:30

标签: interrupt stm32 gpio

我在STM32F103系列中看到,GPIO额外中断设置为EXTI。并且GPIOx_0(x = A,B,C ...)设置为EXTI0。举个例子,如果我想使用PA0和PB0作为中断输入,我可以同时将它们设置为EXTI0吗?我的意思是在EXTI0_Handler函数中,我读取PA0和PB0的输入寄存器的值,通过使用if...else判断哪一个输入电平我想要携带不同的功能。我在STM8中成功使用它,但在STM32中似乎有一点问题。你能帮助我吗?感谢。

1 个答案:

答案 0 :(得分:1)

如果您查看STM32F103 Reference Manual p。 209,您将看到实际上有一个多路复用器决定PA0,PB0,......或PG0是否连接到EXTI0信号:

STM32F103 ExtI0 schematic

这意味着您无法将PA0和PB0连接到EXTI0。事实上,备用功能输入/输出寄存器(AFIO)中有四个特定位,可让您选择连接到EXTI0信号的引脚。这里,这些位位于控制寄存器AFIO_EXTICR1中。有关详细信息,请参阅同一文档中的AFIO寄存器映射。

现在我不知道你正在使用哪种设置,但我记得,我有不同的中断请求例程的功能(对于EXTI0,EXTI1等)。