|
對于是stm3210X GPIO的配置種類有8種之多:
(1)GPIO_Mode_AIN 模擬輸入
(2)GPIO_Mode_IN_FLOATING 浮空輸入
(3)GPIO_Mode_IPD 下拉輸入
(4)GPIO_Mode_IPU 上拉輸入
(5)GPIO_Mode_Out_OD 開漏輸出
(6)GPIO_Mode_Out_PP 推挽輸出
(7)GPIO_Mode_AF_OD 復(fù)用開漏輸出
(8)GPIO_Mode_AF_PP 復(fù)用推挽輸出
輸入上拉與輸入下拉的區(qū)別:
輸入上拉(GPIO_Mode_IPU):端口與VCC通過一個電阻串連,因此沒有輸入或輸入高電平時端口為高電平,輸入低電平時端口為低電平
輸入下拉(GPIO_Mode_IPD):端口與GND通過一個電阻串連,因此沒有輸入或輸入低電平時端口為低電平,輸入高電平時端口為高電平
從硬件圖上得知按鍵與GND相連,如果端口設(shè)置為輸入上拉,那么松開按鍵時端口為高電平,按下按鍵時端口為低電平,可以區(qū)分兩種狀態(tài)
如果端口設(shè)置為輸入下拉,那么無論是按下還是松開按鍵時端口總為低電平,無法區(qū)分兩種狀態(tài)
類似地,如果按鍵與VCC相連,則端口需要設(shè)置為輸入下拉才能區(qū)分按下/松開兩種狀態(tài)。
輸入上拉,配置如:GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU
輸入下拉,配置如:GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD
配置和實際硬件電路相反,則讀取IO電平是錯誤的。
在實際硬件電路調(diào)試中,要根據(jù)實際電路進(jìn)行配置。
擴展閱讀:https://www.cnblogs.com/wh201906/p/12079997.html
|
|