GPIO(general purpose intput output)是通用輸入輸出端口的簡稱,可以通過軟件來控制其輸入和輸出。STM32 芯片的 GPIO 引腳與外部設備連接起來,從而實現與外部通訊、控制以及數據采集的功能。不過 GPIO 最簡單的應用還屬點亮 LED 燈了,只需通過軟件控制 GPIO 輸出高低電平即可。當然 GPIO 還可以作為輸入控制,比如在引腳上接入一個按鍵,通過電平的高低判斷按鍵是否按下。其中STM32F103xC、STM32F103xD和STM32F103xE有144個引腳的芯片如下圖所示。
那么是不是所有引腳都是 GPIO 呢?當然不是,STM32 引腳可以分為這么幾大類:
-
電源引腳:引腳圖中的 VDD、VSS、VREF+、VREF-、VSSA、VDDA 等都屬於電源引腳。
-
晶振引腳:引腳圖中的 PC14、PC15 和 OSC_IN、OSC_OUT 都屬於晶振引腳,不過它們還可以作為普通引腳使用。
-
復位引腳:引腳圖中的 NRST 屬於復位引腳,不做其他功能使用。
-
下載引腳:引腳圖中的 PA13、PA14、PA15、PB3 和 PB4 屬於 JTAG 或SW 下載引腳。不過它們還可以作為普通引腳或者特殊功能使用,具體的功能可以查看芯片數據手冊,里面都會有附加功能說明。當然,STM32 的串口功能引腳也是可以作為下載引腳使用。
-
BOOT 引腳:引腳圖中的 BOOT0 和 PB2(BOOT1)屬於 BOOT 引腳,PB2 還可以作為普通管腳使用。在 STM32 啟動中會有模式選擇,其中就是依靠着BOOT0和 BOOT1 的電平來決定。
-
GPIO 引腳:引腳圖中的 PA、PB、PC、PD 等均屬於 GPIO 引腳。從引腳圖可以看出,GPIO 占用了 STM32 芯片大部分的引腳。並且每一個端口都有16個引腳,比如 PA 端口,它有 PA0-PA15。其他的 PB、PC 等端口是一樣的。
對於這么多GPIO管腳,可以查閱STM32芯片數據手冊獲取具體某個引腳的功能信息。
如上圖所示,從數據手冊中我們可以獲取引腳的名字、引腳類型、引腳容忍的電壓值和引腳復用功能等信息。