總 :STM32——學習總綱
參考資料:
STM32F1系列參考手冊-V10(中)
一、GPIO簡介
1.1 GPIO 特點
?
1.2 GPIO 電氣特性*
stm32芯片資料STM32F103ZET6(English)
1.3 GPIO 引腳分布
電源引腳:V開頭
晶振引腳:
復位引腳:
下載引腳:通過 串口、JTAG、SWD下載有不同的下載IO
BOOT引腳:
GPIO引腳:p開口
二、IO端口基本結構
F1與F3、F7、H7的差異點在于上下拉電阻的位置。
F1的IO做為輸入禁止使用上下拉電阻,這是由硬件決定的。
額外補充:
模電學習——場效應管(FET)
記憶:箭頭方向就是電子流動方向。想要mos管導通,需要 gs?壓差滿足 箭頭方向上的電子流通。
三、GPIO的八種模式(F1)
前置
STM32F1系列參考手冊-V10(中)
3.1 輸入浮空
特點:
3.2 輸入上拉
特點:
弱上拉
3.3 輸入下拉
特點:
3.4 模擬功能
特點:
輸入只走模擬輸入
3.5 開漏輸出
寄存器介紹參考前置
特點:
開漏模式下,寄存器寫0,NMOS管導通,此時IO口呈低電平↓
開漏模式下,寄存器寫1,P、N mos管皆不導通,此時IO口為高阻態,F1系列想要輸出高電平,需要外部的上拉電阻。
3.6 開漏復用
特點:
不由寄存器控制,由片上外設控制輸出?
3.7 推挽輸出
寄存器介紹參考前置
特點:
可控制 P/N MOS管的反向導通,控制 IO?口輸出高低電平。
3.8 推挽復用?
特點:
不由寄存器控制,由片上外設控制輸出
3.* F4/F7/H7 系列和 F1 系列的 GPIO 差異點
四、GPIO寄存器(F1)
STM32F1系列參考手冊-V10(中)
“GPIOx_” 中的 ‘x’ 代表A~E組別,每個組有以下七個寄存器
4.1 端口配置 高、低 寄存器(Configuration Register Low/High)
此倆寄存器用于配置 IO 口的 工作模式和輸出速度。
一組 IO 有16個,高、低寄存器每四個bit(CNFy、MODEy)配置一個IO,兩個寄存器64bit,共配置16個IO。
當配置 bit 0b1000, 按配置是 上拉/下拉 輸入模式,但不能確定上拉還是下拉,還需要ODR寄存器進行設置。
具體CR配置如下截圖。
GPIOx_CRL
GPIOx_CRH
4.2 端口輸出數據寄存器(Out Data Register)
GPIOx_ODR
16個 bit 對應16個IO。用于設置IO引腳輸出時的高低電平。
還可通過此寄存器配置上拉/下拉輸入配置。
4.3 端口輸入數據寄存器(Input Data Register)
GPIOx_IDR
只讀,讀取對應 IO 的狀態,用于判斷引腳電平。
4.4 端口位設置/清除寄存器(Bit Set Reset Register)
GPIOx_BSRR
高16bit,寫 1 清除ODR寄存器對應bit為0,寫0無影響。
低16bit,寫 1 清除ODR寄存器對應bit為1,寫0無影響。
此寄存器用于控制 ODR寄存器
4.5 不建議使用的寄存器
? ? GPIOx_BRR
? ? GPIOx_LCKR
4.6 ODR 與 BSRR*
類似C中 volatile關鍵詞,從原始地址獲取值,以防緩存值與原始值不一致。