在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

全面掌握stm32的GPIO知識

硬件攻城獅 ? 來源:技術讓夢想更偉大 ? 作者:技術讓夢想更偉大 ? 2022-11-02 12:47 ? 次閱讀

1 初學者重要提示

本文主要是以stm32H7系列為主。

對于不使用的引腳,推薦設置為模擬模式,懸空即可。

GPIO的速度等級高的時候,最好使能IO補償單元。

2 GPIO功能簡介

STM32H7的GPIO特性如下:

輸出狀態:開漏/推挽 + 上拉/下拉電阻

通過輸出數據寄存器(GPIOx_ODR)或者外設(GPIO設置為復用模式時)輸出數據。

GPIO速度等級設置。

輸入狀態:浮空,上拉/下拉,模擬。

通過輸入數據寄存器(GPIOx_IDR)或者外設(GPIO設置為復用模式)輸入數據。

通過寄存器GPIOx_BSRR實現對寄存器GPIOx_ODR的位操作。

通過配置寄存器GPIOx_LCKR的鎖機制,實現凍結IO口配置。

每兩個時鐘周期就可以翻轉一次IO。

高度靈活的引腳復用功能,允許IO引腳既可以做GPIO也可以做功能復用。

3 GPIO功能模式分析(重要)

STM32H7的GPIO端口可以配置為如下的8種模式:

輸入浮空

輸入上拉

輸入下拉

模擬功能

具有上拉或下拉功能的開漏輸出

具有上拉或下拉功能的推挽輸出

具有上拉或下拉功能的復用功能推挽

具有上拉或下拉功能的復用功能開漏

由于上拉和下拉是可選配置,對應的HAL庫配置使用下面6種就可以表示:

GPIO_MODE_INPUT 輸入模式

GPIO_MODE_OUTPUT_PP 推挽輸出

GPIO_MODE_OUTPUT_OD 開漏輸出

GPIO_MODE_AF_PP 復用推挽

GPIO_MODE_AF_OD 復用開漏

GPIO_MODE_ANALOG 模擬模式

3.1 推挽輸出

5617e5f0-5a68-11ed-a3b6-dac502259ad0.png

推挽電路是兩個參數相同的三極管或 MOSFET,以推挽方式存在于電路中。電路工作時,兩只對稱的開關管每次只有一個導通,導通損耗小、效率高。輸出既可以向負載灌電流,也可以從負載抽取電流。推拉式輸出級提高電路的負載能力。相對于開漏輸出模式,推挽輸出最大優勢是輸出高電平時,上升時間快,電壓驅動能力強。

3.2 開漏輸出

562669fe-5a68-11ed-a3b6-dac502259ad0.png

開漏端相當于 MOS 管的漏極(三極管的集電極),要得到高電平狀態必須外接上拉電阻才行,因此輸出高電平的驅動能力完全由外接上拉電阻決定,但是其輸出低電平的驅動能力很強。開漏形式的電路有以下幾個特點:

輸出高電平時利用外部電路的驅動能力,減少 IC 內部的驅動。

開漏是用來連接不同電平的器件,匹配電平用的,因為開漏引腳不連接外部的上拉電阻時,只能輸出低電平。如果需要同時具備輸出高電平的功能,則需要接上拉電阻,很好的一個優點是通過改變上拉電源的電壓,便可以改變傳輸電平。上拉電阻的阻值決定了邏輯電平轉換的速度。阻值越大,速度越低,功耗越小。

開漏輸出提供了靈活的輸出方式,但是也有其弱點,就是帶來上升沿的延時。因為上升沿是通過外接上拉無源電阻對負載充電,所以當電阻選擇小時延時就小,但功耗大;反之延時大功耗小。所以如果對延時有要求,則建議用下降沿輸出。

可以將多個開漏輸出連接到一條線上。通過一只上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關系,即“線與”。可以簡單的理解為:在所有引腳連在一起時,外接一上拉電阻,如果有一個引腳輸出為邏輯 0,相當于接地,與之并聯的回路“相當于被一根導線短路”,所以外電路邏輯電平便為 0,只有都為高電平時,與的結果才為邏輯 1。

3.3 復用推挽和開漏

復用指的是GPIO切換到CPU內部設備(比如SPI,I2C,UART等電路),也就是GPIO不是作為普通IO使用,是由內部設備直接驅動。推挽和開漏的特征同上。

3.4 四種輸入模式

5630a144-5a68-11ed-a3b6-dac502259ad0.png

通過上面的引腳結構圖可以得到如下三種方式

浮空輸入:CPU內部的上拉電阻、下拉電阻均斷開的輸入模式。

下拉輸入:CPU內部的下拉電阻使能、上拉電阻斷開的輸入模式。

上拉輸入:CPU內部的上拉電阻使能、下拉電阻斷開的輸入模式。

而模擬輸入模式是GPIO引腳連接內部ADC

563ab300-5a68-11ed-a3b6-dac502259ad0.png

4 GPIO的拉電流負載和灌電流負載能力

這里先普及點小知識,什么是拉電流負載,什么是灌電流負載。

拉電流負載:一種負載電流從驅動門流向外電路,稱為拉電流負載。比如使用STM32H7的GPIO直接驅動LED就是拉電流形式。

5642a376-5a68-11ed-a3b6-dac502259ad0.png

灌電流負載:負載電流從外電路流入驅動門,稱為灌電流負載。比如下面這種形式的LED驅動電路

564de420-5a68-11ed-a3b6-dac502259ad0.png

有了上面這些知識后再來看STM32H7的IO驅動能力(截圖來自STM32H7參考手冊):

5658c142-5a68-11ed-a3b6-dac502259ad0.png

通過上面的截圖可知:STM32H7總的拉電流和灌電流不可超過140mA,單個引腳最大不可超過20mA,這個知識點,大家要知道。

5 IO補償單元,用于高速

IO補償單元用于控制I/O通信壓擺率(tfall/ trise)以此來降低I/O噪聲。當前STM32H7的速度等級可以配置為以下四種:

566b3980-5a68-11ed-a3b6-dac502259ad0.jpg

/** @defgroup GPIO_speed_define  GPIO speed define
  * @brief GPIO Output Maximum frequency
  * @{
  */  
#define  GPIO_SPEED_FREQ_LOW         ((uint32_t)0x00000000U)  /*!< Low speed     */
#define  GPIO_SPEED_FREQ_MEDIUM      ((uint32_t)0x00000001U)  /*!< Medium speed  */
#define  GPIO_SPEED_FREQ_HIGH        ((uint32_t)0x00000002U)  /*!< Fast speed    */
#define  GPIO_SPEED_FREQ_VERY_HIGH   ((uint32_t)0x00000003U)  /*!< High speed    */

566b3980-5a68-11ed-a3b6-dac502259ad0.jpg

使用后兩種速度等級的話,最好使能IO補償單元。

6 GPIO兼容CMOS和TTL電平

CMOS和TTL電平兼容問題也是一個比較重要的知識點

567dc8b6-5a68-11ed-a3b6-dac502259ad0.png

7 不使用的引腳推薦設置為模擬模式

主要從功耗和防干擾考慮。

所有用作帶上拉電阻輸入的 I/O都會在引腳外部保持為低時產生電流消耗。此電流消耗的值可通過使用的靜態特性中給出的上拉 / 下拉電阻值簡單算出。

對于輸出引腳,還必須考慮任何外部下拉電阻或外部負載以估計電流消耗。

若外部施加了中間電平,則額外的 I/O 電流消耗是因為配置為輸入的 I/O。此電流消耗是由用于區分輸入值的輸入施密特觸發器電路導致。除非應用需要此特定配置,否則可通過將這些I/O 配置為模擬模式以避免此供電電流消耗。ADC 輸入引腳應配置為模擬輸入就是這種情況。

任何浮空的輸入引腳都可能由于外部電磁噪聲,成為中間電平或意外切換。為防止浮空引腳相關的電流消耗,它們必須配置為模擬模式,或內部強制為確定的數字值。這可通過使用上拉 / 下拉電阻或將引腳配置為輸出模式做到。

綜上考慮,不使用的引腳設置為模擬模式,懸空即可。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121006
  • STM32
    +關注

    關注

    2271

    文章

    10923

    瀏覽量

    357215
  • GPIO
    +關注

    關注

    16

    文章

    1216

    瀏覽量

    52306

原文標題:全面掌握stm32的GPIO,看這篇就可以了!

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    GPIO錯誤排查與解決

    在嵌入式系統和微控制器編程中,通用輸入輸出(GPIO)是最常見的接口之一。然而,在使用GPIO時,我們可能會遇到各種錯誤。 1. 理解GPIO GPIO是微控制器上的一組引腳,可以被配
    的頭像 發表于 01-09 09:46 ?271次閱讀

    硬件工程師需要掌握的硬件基礎知識

    作為一個資深硬件工程師,我們需要掌握一些硬件基礎知識,今天總結一下哪些算是基礎知識。給學電子方面想從事硬件工作的同學們一點提示。給未走出大學校園的電子方面的學生一些幫助。 ? 工具/原料 萬用表
    的頭像 發表于 12-02 09:22 ?494次閱讀
    硬件工程師需要<b class='flag-5'>掌握</b>的硬件基礎<b class='flag-5'>知識</b>

    GPIO內部電路的原理

    前言 筆者近日在B站刷到了一個視頻,使我對GPIO的I/O口內部基本結構以及工作原理有了恍然大明白的理解,現在對此做一個總結,并為大家推薦該視頻Keysking 【STM32GPIO內部電路
    的頭像 發表于 11-20 09:24 ?420次閱讀
    <b class='flag-5'>GPIO</b>內部電路的原理

    stm32 GPIO中斷配置教程

    在嵌入式開發中,STM32微控制器因其高性能和豐富的外設而廣受歡迎。GPIO(通用輸入/輸出)中斷是STM32微控制器中常用的功能之一,它允許開發者在特定引腳上檢測到外部信號變化時快速響應。 1.
    的頭像 發表于 11-19 15:53 ?1177次閱讀

    STM32 GPIO的八種工作模式

    GPIO (general purpose input output)是通用輸入輸出端口的簡稱,簡單來說就是軟件可控制的引腳,STM32芯片的GPIO引腳與外部設備連接起來,從而實現與外部通訊、控制以及數據采集的功能。
    的頭像 發表于 11-06 09:40 ?879次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>的八種工作模式

    硬件設計技巧:三類GPIO接口的實用指南

    今天教大家一些關于硬件設計的的技巧,只要掌握好三類GPIO,輕松玩好硬件設計。
    的頭像 發表于 11-05 12:22 ?391次閱讀
    硬件設計技巧:三類<b class='flag-5'>GPIO</b>接口的實用指南

    SOC GPIO操作

    sapphire Soc提供了兩個GPIO組每組有4個GPIO,定義為GPIO[3:0],其中只有GPIO[1:0]可以支持中斷。中斷在程序中打開了
    的頭像 發表于 11-01 11:06 ?187次閱讀

    STM32 GPIO八種模式及工作原理詳解

    一. 前言 ??GPIO全稱General Purpose Input Output,是微控制數字輸入/輸出的基本模塊,可以實現微控制器與外部環境的數字進行交換。借助GPIO微控制器可以實現對外
    的頭像 發表于 07-22 09:32 ?6835次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>八種模式及工作原理詳解

    快速搞懂GPIO控制器的六種模式

    在嵌入式系統和單片機開發中,GPIO(通用輸入輸出)控制器是一個非常重要的組件。GPIO引腳的靈活性使它們能夠執行多種功能,從簡單的輸入輸出到復雜的通信任務。為了幫助大家快速了解和掌握GPIO
    的頭像 發表于 05-18 08:04 ?1603次閱讀
    快速搞懂<b class='flag-5'>GPIO</b>控制器的六種模式

    stm32單片機學習路線

    第一步 編程及硬件基礎知識 1.掌握C語言基礎 作為STM32的主要編程語言,C語言的基礎知識是必不可少的。建議通過書籍、在線課程或者教學視頻系統地學習C語言的基礎
    發表于 05-10 15:34

    什么是GPIOGPIO組成原理

    GPIO全拼叫General Purpose Input Output(通用輸入輸出)簡稱IO口也叫總線擴展器,GPIO口是由引腳,功能寄存器組成,不同的架構中的GPIO封裝不同,所使用的引腳數與寄存器數不同,具體可以參考芯片手
    發表于 04-28 12:30 ?7297次閱讀
    什么是<b class='flag-5'>GPIO</b>?<b class='flag-5'>GPIO</b>組成原理

    請問如何提高STM32 GPIO輸出速度?

    由于應用需要,用GPIO輸出高低電平產生脈沖,通過軟件控制GPIO輸出翻轉。用的是STM32F412, APB2最高達到100M,可實際GPIO輸出最多只能達到10M 頻率。 請問能繼
    發表于 04-12 06:05

    STM32GPIO口如果既要輸入又要輸出怎么辦?STM32 GPIO口8種模式如何準確的分析?

    STM32GPIO口如果既要輸入又要輸出怎么辦?STM32 GPIO口8種模式如何準 確的分析?
    發表于 04-08 08:27

    MCU啟動失敗竟因GPIO先上電?

    由于 RT1060 上 GPIO_AD_Bx 和 GPIO_Bx 兩組 PAD 供電均來自于 NVCC_GPIO,當其中任何一個 GPIO 有電壓時,均可能會漏電到 NVCC_
    發表于 03-28 10:32 ?866次閱讀
    MCU啟動失敗竟因<b class='flag-5'>GPIO</b>先上電?

    嵌入式軟件開發應該掌握哪些知識?

    嵌入式軟件開發應該掌握哪些知識? 一、 什么是嵌入式軟件? 嵌入式軟件通常是指嵌入式系統中運行的軟件,嵌入式系統是一種特殊的計算機系統,通常用于控制、監測和數據處理等任務。嵌入式系統通常由硬件和軟件
    發表于 02-19 11:23
    主站蜘蛛池模板: aaaa级毛片| 免费国产综合视频在线看 | 免费在线看视频 | 你懂在线 | 五月婷婷在线免费观看 | 免费在线观看的网站 | 午夜一级精品免费毛片 | 天天综合天天做天天综合 | 无遮挡很污很爽很黄的网站 | 久久精品国产免费中文 | www.激情网.com| 高清欧美性xxxx成熟 | 国产理论 | 亚洲综合五月天婷 | 美女黄色在线看 | 天堂网址| 在线视免费频观看韩国aaa | 极品啪啪 | 成人亚洲网站www在线观看 | 国模掰开| 西西人体大胆午夜gog0 | 日本中文在线三级在线播放 | 久久综合成人网 | 综合久| 国产资源站 | 九色视频播放 | 亚洲综合激情丁香六月 | 天天操天天操天天干 | 五月婷婷俺也去开心 | 中国特黄一级片 | 深夜视频免费在线观看 | 色婷婷视频在线观看 | 黄色免费小视频 | 亚洲日本高清 | 天天在线免费视频 | 岛国毛片在线观看 | 亚洲一区二区三 | 欧美色频 | 人成网站在线观看 | 亚洲va国产日韩欧美精品色婷婷 | 色综合天天综合网国产成人网 |