GPIO的介紹
GPIO (general purpose input output)是通用輸入輸出端口的簡(jiǎn)稱(chēng),通俗來(lái)講就是單片機(jī)上的引腳,在STM32中,GPIO的工作模式被細(xì)分為8種,由4個(gè)32位寄存器共同控制。
輸出和輸入都是針對(duì)芯片引腳來(lái)講的(即引腳的對(duì)外輸出,和外界對(duì)引腳的輸入)。
四種輸入模式介紹
輸入模式下可讀取端口的高低電平或電壓。例如各類(lèi)傳感器(使用ADC功能),如果要將獲取的電平傳送給單片機(jī)的某一個(gè)引腳,那就要將這個(gè)引腳設(shè)置為輸入模式。
這種輸入模式比較特殊,該模式主要為片上外設(shè)ADC而配置,從外部讀取模擬信號(hào),當(dāng)設(shè)置為模擬輸入時(shí),GPIO會(huì)失效,引腳直接接入內(nèi)部ADC。
特點(diǎn):相較于其他輸入模式只能讀取到邏輯高/低電平(數(shù)字量),該模式能讀取到細(xì)微變化的值(模擬量)。通俗來(lái)講就是,別的模式只能讀取0和1,而模擬輸入可以讀取到0-1的變化區(qū)間。
主要應(yīng)用:所有要用到ADC模擬輸入的外設(shè)(例如煙霧傳感器,引腳需要接收模擬信號(hào)進(jìn)而計(jì)算電壓值),低功耗下省電。
2、GPIO_Mode_IN_FLOATING 浮空輸入
數(shù)據(jù)通道中僅接入TTL觸發(fā)器(作用是將相對(duì)緩慢變化的模擬信號(hào)變成矩形信號(hào))整形,隨后輸入輸入數(shù)據(jù)寄存器。浮空輸入狀態(tài)下,IO的電平狀態(tài)是不確定的,完全由外部輸入決定,如果在該引腳懸空(無(wú)信號(hào)輸入)的情況下,讀取該端口的電平是不確定的。該種工作模式未接入任何上拉/下拉電阻。
主要應(yīng)用:可用于按鍵KEY實(shí)驗(yàn)、發(fā)送接收信號(hào)RX、TX、IIC、USART等。(但按鍵一般更常用到上拉下拉輸入,待會(huì)再重點(diǎn)記錄)。主要還是發(fā)送和接收信號(hào)的引腳常設(shè)置為浮空輸入。
3、GPIO_Mode_IPD 下拉輸入
可讀取引腳電平,與浮空輸入相比,它內(nèi)部連接下拉電阻,懸空時(shí)默認(rèn)為低電平,其余相同。
4、GPIO_Mode_IPU 上拉輸入
可讀取引腳電平,與浮空輸入相比,它內(nèi)部連接上拉電阻,懸空時(shí)默認(rèn)為高電平,其余相同。
主要應(yīng)用:
①按鍵的使用
②器件的外部中斷(IRQ)引腳觸發(fā)中斷條件為下降沿觸發(fā)/低電平觸發(fā),這樣在無(wú)信號(hào)輸入時(shí)始終保持高電平,如果有事件觸發(fā)中斷IRQ可以輸出一個(gè)低電平,進(jìn)而可產(chǎn)生(下降沿/低電平)中斷,此時(shí)就可以將該引腳設(shè)置為上拉輸出,使中斷條件滿(mǎn)足。
③同理,器件的外部中斷(IRQ)引腳觸發(fā)中斷條件為上升沿觸發(fā)/高電平觸發(fā)時(shí),該端口可以選擇下拉輸入模式。
重點(diǎn)記錄:按鍵與上拉/下拉輸入
由圖不難看出:當(dāng)KEY_UP按下后,會(huì)接入VCC的高電平,而當(dāng)按鍵不按下時(shí),即為懸空狀態(tài)(無(wú)信號(hào)輸入),此時(shí)IO輸入是未知的,程序可能卡死在這里或者跑飛。那我們就要用到一個(gè)下拉電阻,使該引腳在懸空狀態(tài)下電平被拉低。即按鍵KEY_UP按下為高電平,不按下為低電平。
同理,當(dāng)KEY0、KEY1、KEY2三個(gè)按鍵按下時(shí)會(huì)接入GND的低電平,而不按下時(shí)輸入未知。為了避免程序跑飛,采用上拉電阻,讓按鍵按下時(shí)為低電平,按鍵松開(kāi)為高電平。
-
單片機(jī)
+關(guān)注
關(guān)注
6032文章
44514瀏覽量
632975 -
STM32
+關(guān)注
關(guān)注
2266文章
10871瀏覽量
354791 -
輸入端口
+關(guān)注
關(guān)注
0文章
9瀏覽量
7923 -
GPIO
+關(guān)注
關(guān)注
16文章
1196瀏覽量
51915
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論