GPIO的工作原理和配置方法
GPIO是STM32與外設(shè)打交道的通道。
GPIO端口的保護(hù)二極管可以接3.3V或5V(標(biāo)FT的管腳)兩種直流電壓,這使得IO端口可配置成兼容3.3V或5V兩種電壓信號(hào)。
STM32的GPIO管腳有8種配置方式(4輸入+2輸出+2復(fù)用輸出):
(1)浮空輸入(IN_FLOATING)
(2)帶上拉輸入(IPU)
在施密特觸發(fā)器前加30k-50k的上拉電阻,好處是屏蔽IO口的干擾。
(3)帶下拉輸入()
在施密特觸發(fā)器前加30k-50k的下拉電阻。
(4)模擬輸入()
信號(hào)從1端口進(jìn)入,從2端口進(jìn)入AD模塊。
(5)開(kāi)漏輸出
GPIO在輸出模式下,有3種可選的輸出速度:2MHZ,10MHz,50MHz、
(6)開(kāi)漏復(fù)用輸出
(7)推挽輸出模式
(8)推挽復(fù)用輸出模式
如果GPIO端口外界LED燈,則通常配置成推挽輸出;如果接按鍵,則配置成上拉輸入;如果接AD,則配置成模擬輸入。
GPIO端口工作方式的配置
STM32的每個(gè)IO端口都有7個(gè)寄存器來(lái)控制,分別是:
(1)配置模式的2個(gè)32位的端口配置寄存器CRL和CRH
(2)2個(gè)32位的數(shù)據(jù)寄存器IDR和ODR
(3)1個(gè)32位的置位/復(fù)位寄存器BSRR
(4)1個(gè)16位的復(fù)位寄存器BRR
(5)1個(gè)32位的鎖存寄存器LCKR