三、配置等問題
我們搜尋的大多數資料顯示的都是有8種模式;輸入4種輸出4種。但今天我們就不按照那種思路來整理gpio的模式了。我們通過gpio的配置來看看有哪些模式。
pupdr(i) [1:0]: (設定 有無上下拉電阻)
對應 gpio 埠上拉/下拉暫存器 (gpiox_pupdr),
00:無上拉或下拉
01:上拉
10:下拉
11:保留
從上圖中我們不難看出,在輸入模式下我們只需要配置2項:
模式:輸入
有無上下拉電阻:1、無上下拉電阻; 2、有上拉電阻; 3、有下拉電阻
在模擬模式下配置2項:
模式:模擬
有無上下拉電阻:無上下拉電阻
在輸出和復用模式下配置4項:
模式:1、輸出; 2、復用
開漏推挽:1、開漏; 2、推挽
輸出速度:1、2mhz; 2、25mhz; 3、50mhz; 4、100mhz
有無上下拉電阻:1、無上下拉電阻; 2、有上拉電阻; 3、有下拉電阻
關於輸出速度的配置問題:
速度越快響應越快,但對應功耗也就越高
關於復用功能的配置問題:
為什麼很多時候只有復用輸出沒有復用輸入?其實這個問題本來就很奇怪,因為我既然設定了復用功能,那麼就肯定不是普通的輸出和輸出模式了。在《stm32中文手冊》p182頁 7.3.7 i/o復用功能輸入/輸出 中也說到:「由於 af 選擇訊號由復用功能輸入和復用功能輸出共用,所以只需為每個 i/o 的復用功能輸入/輸出選擇乙個通道即可」。至於它的配置就時上面所提到的那樣。
什麼時候用上拉? 什麼時候用下拉?什麼時候開漏 ?什麼時候推挽?
上下拉:
就是在引腳懸空或者外部沒有訊號的時候,這個訊號還包括內部的輸出訊號,上拉就使得i/o口預設高電平,下拉就預設低電平。
開漏和推挽:
在開漏輸出模式時,只有n-mos管工作,如果我們控制輸出為0,低電平,則p-mos管關閉,n-mos管導通,使輸出低電平,i/o埠的電平就是低電平,若控制輸出為1時,高電平,則p-mos管和n-mos管都關閉,輸出指令就不會起到作用,此時i/o埠的電平就不會由輸出的高電平決定,而是由i/o埠外部的上拉或者下拉決定 如果沒有上拉或者下拉 io口就處於懸空狀態。
在推挽輸出模式時,n-mos管和p-mos管都工作,如果我們控制輸出為0,低電平,則p-mos管關閉,n-mos管導通,使輸出低電平,i/o埠的電平就是低電平,若控制輸出為1 高電平,則p-mos管導通n-mos管關閉,使輸出高電平,i/o埠的電平就是高電平, 外部上拉和下拉的作用是控制在沒有輸出時io口電平。
開漏輸出和推挽輸出的區別:
推挽輸出:
可以輸出強高低電平,連線數字器件
推挽結構一般是指兩個三極體分別受兩互補訊號的控制,總是在乙個三極體導通的時候另乙個截止。
開漏輸出:
可以輸出強低電平,高電平得靠外部電阻拉高。輸出端相當於三極體的集電極. 需要外接上拉電阻,才能實現輸出高電平 合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內);在使用任何一種開漏模式時,都需要接上拉電阻,否則只能輸出低電平。
STM32GPIO部分介紹
最近在老師交給了乙個專案,需要用到stm32微控制器,這裡就在學習的過程中所注意到的一些地方或細節部分記錄了下來,筆者所使用的是stm32f407zgt6晶元 探索者 檢視晶元的資料手冊 這個 對每個i o口的功能進行了很詳細的介紹。每個i o除了作為i o使用外,還可以作為其他的復用。已以pe2口...
STM32 GPIO模式總結
4種輸入模式 浮空輸入 上拉輸入 下拉輸入 模擬輸入 4種輸出模式 開漏輸出 復用開漏輸出 推挽輸出 復用推挽輸出 3種最大輸出速度 2mhz 10mhz 50mhz 浮空輸入模式 1 外部通過io口輸入電平,外部電平通過上下拉部分 浮空模式下都關閉,既無 上拉也無下拉電阻 2 傳輸到施密特觸發器 ...
STM32 GPIO簡單介紹
2018 3 28 stm32 1.簡單配置暫存器環境 2.ministm32f103rc 51個io口 1.擁有著4組io口 gpioa0 a15 gpiob0 b15 gpioc0 c15 gpiod0 d2 2.gpio的工作方式 四種輸入模式,四種輸出模式 輸入方式 1.輸入浮空模式 由引腳...