STM32 GPIO八種輸入輸出模式

2021-10-25 22:18:17 字數 1491 閱讀 4118

參考:

浮空,顧名思義,就相當與此埠在預設情況下什麼都不接,呈高阻態。浮空最大的特點就是電壓的不確定性,它可能是0v,也可能是vcc,還可能是介於兩者之間的某個值(最有可能)。

將不確定的訊號通過乙個電阻鉗位在高電平。沒有輸入或輸入為高電平時是高電平,輸入為低電平時就是低電平。

將不確定的訊號通過乙個電阻鉗位在低電平。沒有輸入或輸入為低電平時是低電平,輸入為高電平時就是高電平。

訊號進入後不經過上拉電阻或者下拉電阻,關閉施密特觸發器,經由另一線路把電壓訊號傳送到片上外設模組。比如傳送給adc模組,由adc採集電壓訊號。

所謂的推挽輸出模式,是根據輸出控制的兩個mos管的工作方式來命名的。在該結構中輸入高電平時,經過反向後,上方的p-mos導通,下方的n-mos關閉,對外輸出高電平;而在該結構中輸入低電平時,經過反向後,n-mos管導通,p-mos關閉,對外輸出低電平。當引腳高低電平切換時,兩個管子輪流導通,p管負責灌電流,n管負責拉電流,使其負載能力和開關速度都比普通的方式有很大的提高。推挽輸出的低電平為0v,高電平為3.3v。

在開漏輸出模式時,上方的p-mos管完全不工作。如果我們控制輸出為0,低電平,則p-mos管關閉,n-mos管導通,使輸出接地,若控制輸出為1 (它無法直接輸出高電平)時,則p-mos管和n-mos管都關閉,所以引腳既不輸出高電平,也不輸出低電平,為高阻態。正常使用時必須外部接上拉電阻,由上拉電阻提供高電平,此高電平的電壓為外部上拉電阻所接的電壓。

tips:推挽輸出模式一般應用在輸出電平為0和3.3伏而且需要高速切換開關狀態的場合。在stm32的應用中,除了必須用開漏模式的場合,我們都習慣使用推挽輸出模式。開漏輸出一般應用在i2c、smbus通訊等需要線與功能1

的匯流排電路中。除此之外,還用在電平不匹配的場合,如需要輸出5伏的高電平,就可以在外部接乙個上拉電阻,上拉電源為5伏,並且把gpio設定為開漏模式,當輸出高阻態時,由上拉電阻和電源向外輸出5伏的電平。

可以理解為gpio口被用作第二功能時的配置情況(即並非作為通用io口使用),埠必須配置成復用功能輸出模式。

同開漏復用。

若有很多個開漏模式引腳連線到一起時,只有當所有引腳都輸出高阻態,才由上拉電阻提供高電平,此高電平的電壓為外部上拉電阻所接的電源的電壓。若其中乙個引腳為低電平,那線路就相當於短路接地,使得整條線路都為低電平。 ↩︎

STM32 GPIO輸入輸出方式詳解

結構圖就不上了 結構圖的上半部分為 輸入模式結構。接下來就遇到了兩個開關和電阻,與 vdd相連的為上拉電阻,與vss相連 的為下拉電阻。再連線到施密特觸發器就把電壓訊號轉化為 0 1的數碼訊號存 儲在輸入資料暫存器 idr 我們可以通過設定配置暫存器 crl crh 控制 這兩個開關,於是就可以得到...

STM32 GPIO的輸入輸出 HAL庫

本文將介紹stm32基於hal庫的gpio使用,利用上文建立好的hal庫工程模板,可以方便的編寫應用程式。我們目標是編寫乙個led燈和按鍵的使用例子,每按下一次按鍵,led的亮滅狀態將進行一次反轉。我們建立 led.h 和 led.c 在工程模板的inc和src資料夾中。該模組 作用是防止在某乙個 ...

stm32 GPIO 輸入 按鍵檢測

使能 gpio 埠時鐘 初始化 gpio 目標引腳為輸入模式 浮空輸入 編寫簡單測試程式,檢測按鍵的狀態,實現按鍵控制 led 燈。1.按鍵引腳巨集定義 1 引腳定義 2 define key1 gpio clk rcc apb2periph gpioa 3 define key1 gpio por...