簡體   English   中英

STM32中的GPIO額外中斷

[英]GPIO extra interrupt in STM32

我在STM32F103系列中看到,GPIO額外中斷設置為EXTI。 並且 GPIOx_0 (x=A,B,C...) 設置為 EXTI0。 舉個例子,如果我想使用PA0和PB0作為中斷輸入,是否可以同時將它們設置為EXTI0? 我的意思是在 EXTI0_Handler 函數中我讀取 PA0 和 PB0 的輸入寄存器的值來判斷哪個輸入一個電平我要使用if...else來承載不同的功能。 我在 STM8 中成功使用了它,但在 STM32 中似乎有點問題。 你能幫助我嗎? 謝謝。


答案清楚地說明了問題。 圖中舉例說明為什么設置不同的引腳會改變這四個位。 如果您配置其他引腳,您可以看到這四個位相互影響。 我之前忽略了這個問題。

STM32中外部中斷配置寄存器1

如果您查看 STM32F103 參考手冊頁。 209,你會看到實際上有一個多路復用器決定PA0,PB0,...或PG0是否連接到EXTI0信號:

STM32F103 ExtI0 原理圖

這意味着您不能同時將 PA0 和 PB0 連接到 EXTI0。 實際上,復用功能輸入/輸出寄存器 (AFIO) 中有四個特定位,可讓您選擇連接到 EXTI0 信號的引腳。 此處,這些位位於控制寄存器 AFIO_EXTICR1 中。 有關更多信息,請參閱同一文檔中的 AFIO 寄存器映射。

現在我不知道您使用的是哪種設置,但我記得,我為不同的中斷請求例程(對於 EXTI0、EXTI1 等)使用了單獨的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM