gpio_mode_ain:模擬輸入模式
gpio_mode_in_floating:浮空輸入模式
gpio_mode_ipd:下拉輸入模式
gpio_mode_ipu:上拉輸入模式
gpio_mode_out_od:通用開漏輸出模式
gpio_mode_out_pp:通用推挽輸出模式
gpio_mode_af_od:復用開漏輸出模式
gpio_mode_af_pp:復用推挽輸出模式
前四個是輸入模式,後四個是輸出模式。
從51過來的人,對輸入和輸出比較陌生。51微控制器不用設定輸入和輸出模式,自動變換,無需程式配置,當我們寫程式讀引腳的電平的時候,實際上就是作為輸入模式來使用,當我們寫程式讓引腳輸出電平的時候,實際上就是作為輸出模式來使用。也就是說,並不是51微控制器沒有輸入和輸出這個概念,而是你已經使用了很久卻沒有發現。
stm32與51的區別就是:當我們要讀引腳電平的時候,也就是作為輸入,我們必須要先把引腳設定為輸入功能,才可以讀。當我們要控制引腳高低電平的時候,也就是作為輸出,我們必須要先把引腳設定為輸出功能,才可以設定。
概念比較抽象,你只需要記住:在引腳上沒有外界干擾的情況下,上拉就是把引腳設定為高電平了,你用萬用表量上拉引腳,就是高電平;下拉就是把引腳設定為低電平了,你用萬用表量下拉引腳,就是低電平,也就是0v。
概念比較抽象,你只需要記住:設定為推挽,就是提高了引腳的輸出電流能力。設定為開漏,就是提高了引腳的輸入電流能力。然後還要知道,設定為開漏時,如果外部不加上拉電阻,預設輸出是低電平。
通用就是作為普通的輸入和輸出引腳。復用就是該引腳可以作為spi引腳i2c引腳等其他功能的引腳。
結合上面講的,可以得到一些簡單的應用設定方式。
比如檢測按鍵,就應該設定為輸入,如果外部沒有加上拉電阻,你就需要設定引腳為上拉輸入,這樣如果檢測到引腳是低電平,就是按下按鍵了。如果外部加了上拉電阻,你這時既可以把引腳設定為上拉輸入,也可以設定為浮空輸入,設定為這兩種,由於外部上拉電阻的原因,預設就是高電平,同樣,檢測到低電平時,就是按鍵按下了。
當你要控制引腳高低電平做應用時,就是需要把引腳設定為輸出功能。例如驅動乙個器件,驅動乙個發光二極體等。如果你要使用高電平點亮發光二極體,就需要把引腳設定為推挽輸出,以增大電流輸出能力,如果你設定為開漏輸出,發光二極體肯定是點不亮了。但是如果你使用低電平點亮發光二極體,那麼設定為開漏和推挽輸出都可以正常點亮發光二極體。
STM32 IO口工作模式
一 推挽輸出 可以輸出高 低電平,連線數字器件 推挽結構一般是指兩個三極體分別受兩個互補訊號的控制,總是在乙個三極體導通的時候另乙個截止。高低電平由ic的電源決定。推挽電路是兩個引數相同的三極體或mosfet,以推挽方式存在於電路中,各負責正負半周的波形放大任務,電路工作時,兩隻對稱的功率開關管每次...
stm32 io 口配置和使用
對於stm32 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...
STM32 IO口位帶操作
m4中有4gb的訪問空間,訪問空間有兩個比較重要的位址,暫存器對映位址,又叫別名位址 範圍32mb 暫存器位址 範圍1mb,固定的 使用庫函式對io引腳操作比較費時間,需要進行現場保護和現場恢復操作,不能一步到位。使用位帶操作能夠一步到位,方便快捷。每個埠都有對應的暫存器位址,檢視庫函式可以看到對暫...