您好,登錄后才能下訂單哦!
這篇文章主要講解了“STM32單片機I/O的工作模式有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“STM32單片機I/O的工作模式有哪些”吧!
先說說GPIO
在聊這8種工作模式之前,我想先說一下GPIO的概念—通用輸入輸出 General Purpose Input Output 簡稱GPIO,就是芯片引腳可以通過它們輸出高、低電平,也可以通過他們輸入、讀取引腳的電壓、電平狀態。
下面的8種工作模式我將圍繞下圖進行分析介紹,讀懂這一張圖大家基本就可以完全理解STM32的GPIO了。希望大家仔細的看一看。
四種不同的輸出模式
推挽輸出:該模式下引腳可以輸出高低電平,可連接、驅動數字器件。對于推挽有部分小伙伴可能不知道是啥意思,其實很簡單,就是兩個參數相同的NPN、PNP三極管或者NMOS、PMOS管以推挽方式存在于電路中,各負責正負半周波形放大的任務。兩只對稱管每次只有一個導通,損耗小效率高,既可以提高電路的帶負載能力,又可以提高開關速度。電路如下圖所示,大家可以到IO內部圖里面對比著找一找。
開漏輸出:該模式下引腳就相當于連接到了上圖NMOS的漏極,PMOS關閉去掉不存在。這時該引腳只能輸出低電平,不能輸出高電平,需要引腳加上拉電阻,才能得到高電平。這時一定有小伙伴疑惑,這東西沒有推挽輸出好用啊,錯!開漏輸出是有一些特別的優點的,比如:1、可用于連接與主控電平不匹配的器件,只需要將上拉電阻的上拉端連接到對方電平即可;2、以小博大,利用外部電路的驅動能力,減小內部電流,內部只需要很小的柵極驅動電流。缺點就是會有上升沿的延時,因為有上拉電阻的原因,這一點大家可以去閱讀一下我的上一篇關于電平匹配的文章,里面有介紹。
復用推挽輸出、復用開漏輸出:顧名思義該模式下就是將引腳復用為其他功能,不再是簡單的GPIO。像我們常用的UART、SPI等的輸出引腳就是復用的推挽輸出,而我們常用的I2C就是復用的開漏輸出,這時大家就應該知道為什么我們在用I2C的時候需要上拉電阻了吧。這里給大家埋個伏筆——用I2C時為什么要開漏呢?知道的小伙伴可以在留言區回復,后面有機會分析I2C時我會詳細和大家來說。
四種不同的輸入模式
浮空輸入:這種輸入模式一般多用于檢測外部高低電平狀態,比如按鍵等。大家結合下面的IO內部圖來看,浮空輸入時上下拉電阻都沒有連接,引腳電平狀態不確定,如果引腳懸空時這種模式下讀出來的數據是沒意義的。
上拉、下拉輸入:基本看名字大家就已經知道這種模式是怎么回事了,上圖中如果上面紅圈電阻接入就是上拉輸入,下面紅圈電阻接入就是下拉輸入。上一段我說過按鍵輸入檢測用浮空輸入模式,如果用上拉、下拉模式就更簡單了,就可以省掉外部的上下拉電阻節約項目成本。
模擬輸入:這個模式也是我們非常常用的了,那就是引腳設置為STM32內部ADC的模擬信號輸入。值得注意的是這種模式就不是所有的IO都有的功能了,需要帶ADC的IO口才可以設置。
補充說明些東西
關于IO引腳內部的兩個保護二極管,很久以前看到有人說是用來鉗位的,后來我在參加ST的研討會時問過官方,官方答復說并不是用于鉗位的而是用于做ESD保護的。當引腳作為ADC輸入的時候我們必須保證輸入模擬信號不超過3.6V,5V是不可以的。
上面說了芯片引腳內部有二極管保護,但是我建議大家在做設計時如果引腳引出板外最好格外再加TVS二極管來做加強保護,因為引腳連出板外很容易受靜電等外界因素傷害。比如下載接口,我在空間充足的時候都會放上一個SOT-23的TVS二極管來做保護。
感謝各位的閱讀,以上就是“STM32單片機I/O的工作模式有哪些”的內容了,經過本文的學習后,相信大家對STM32單片機I/O的工作模式有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。