關於STM32F103的GPIO口的介紹 (筆記篇)
廣西●河池學院
廣西高校重點實驗室培訓基地
系統控制與資訊處理重點實驗室
本篇部落格來自河池學院:
智控無人機小組
寫作時間:2020.09.29
關於STM32F103的GPIO口的介紹
(聽課筆記篇)
這是IO口的基本形式
以下就是四種輸入方式的介紹:
(1)
浮空輸入模式
浮空輸入模式下,上拉下拉開關是不會開啟的,電平從I/O口輸入,電平傳輸到TTL(它的狀態是開啟的)直接到輸入資料暫存器,CPU進行讀取讀取TTL中的資料。
(2)
上拉輸入模式
這種輸入方式上拉電阻會被接通,這是與浮空輸入模式唯一的不同點,其它類似。上拉電一般大小為30K~50K左右
(3)下拉輸入模式
這種輸出方式和浮空輸入模式唯一的不同就是下拉電阻開啟了。
(4)模擬模式
這種模式下,上拉電阻和下拉電阻是無效的,外部向內部輸入的是模擬量。(而並非是單純的0和1,是以電壓的形式而不是以電平的形式。電壓是有大小的。電平沒有大小(不是高就是低及0或1),輸入的模擬量一般是0V~3.3V,此時TTL截至,所以直接將模擬量輸出給CPU進行處理。
以下就是四種輸出方式的介紹:
(1)開漏輸出模式
在此時的狀態下,如果寫入的資料是1,該資料會通過位暫存器
後到達輸出暫存器 ODR,後連結到輸出控制電路。此時輸出控制電路輸出的是1,N_MOS管處於閉合狀態,此時I/O口的電平不會由輸出控制電路輸出的輸出來決定(因為N_MOS管處於截至狀態)。此時I/O口的電平由外部的上拉電阻和下拉電阻來決定,也就是說此時的I/O口處於類似浮空的狀態。此時的電平可以根據輸入資料暫存器讓CPU來讀取。(注意:因為此時的I/O口電平不是由輸出控制電路決定的,是由外部電路的上拉和下拉決定的。所以CPU讀到的不一定是CPU寫入的資料)
如果此時寫入的資料是0,輸出控制電路輸出的也是0,N_MOS管處於開啟狀態,這時I/O口的電平會被N_MOS管拉到VSS,所以此時的I/O口也是低電平,所以此時此刻CPU也可以讀到該低電平。(注意:這兩個過程TTL都是開啟的狀態)
(2)開漏複用輸出模式
這種方式與開漏輸出模式的唯一不同點就是訊號的來源方式不同。開漏輸出模式是通過CPU來暫存器來提供訊號的(及0或1)。而開漏複用輸出模式是通過複用功能來提供訊號的,實質就是來源於外部裝置。
(3)推輓輸出方式
控制輸出的暫存器和開漏輸出模式是一樣的,方式也一樣。
如果控制電路輸出為1,P_MOS管就會處於導通狀態,N_MOS管處於截至狀態,此時1就會被傳輸到I/O口,I/O口就會輸出1。同樣的,控制電路輸出為0,P_MOS管就會處於截至狀態,N_MOS管處於導通狀態,此時I/O口輸出0。CPU的讀取資料與開漏輸出模式一樣。
(4)推輓複用輸出方式
此狀態和推輓輸出差不多的,就是輸入訊號的方式不同(看圖類比開漏輸出模式與開漏複用輸出模式的區別可的知)。
以上四種輸入方式,四種輸出方式介紹完畢。
相關文章
- Java 中關於protected的介紹Java
- Rman關於filesperset引數的介紹
- 關於風機滑環的介紹
- 關於 React Hooks 的簡單介紹ReactHook
- Linux分享筆記:shell終端的介紹Linux筆記
- 關於keras框架的介紹以及操作使用Keras框架
- 關於PHP的語法介紹,新手必看PHP
- 關於mysql基礎知識的介紹MySql
- 關於 Android Service 的介紹都在這了Android
- [譯] 關於 React Motion 的簡要介紹React
- Lustre架構介紹的閱讀筆記-HSM架構筆記
- docker筆記19-k8s的介紹Docker筆記K8S
- python關於執行緒的一點介紹Python執行緒
- vue中關於測試的知識介紹Vue
- 關於SSL證書的一些介紹
- 關於資料庫 statistics_level的介紹資料庫
- linux kernel 關於RSS/RPS/RFS/XPS的介紹Linux
- 關於http的瑣碎筆記HTTP筆記
- 關於Oracle Database Vault介紹OracleDatabase
- 關於Luthier CI 路由介紹路由
- celery筆記五之訊息佇列的介紹筆記佇列
- 學習筆記-React的簡單介紹&工作原理筆記React
- Java學習筆記:Javaweb的伺服器介紹Java筆記Web伺服器
- 關於 SAP UI5 Device API 的使用介紹UIdevAPI
- 關於 sap.ui.base.Object 的簡要介紹UIObject
- celery筆記六之worker介紹筆記
- ffmpeg-入門介紹(筆記)筆記
- Jenkinsant介紹(學習筆記五)Jenkins筆記
- iOS 關於tabBar的幾處筆記iOStabBar筆記
- Myth 關於Git的學習筆記Git筆記
- [筆記]關於blade佈局的使用筆記
- 關於http(自己的學習筆記)HTTP筆記
- 關於js繼承的想法筆記JS繼承筆記
- Python 關於JSON模組介紹PythonJSON
- 學習《HTML+CSS基礎課程》的筆記---第一篇:Html介紹HTMLCSS筆記
- SpringBoot SpringSecurity 介紹(基於記憶體的驗證)Spring BootGse記憶體
- STM32學習筆記——GPIO筆記
- 兄弟連golang神技(1)-關於 Go 語言的介紹Golang