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