chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

哈哈hfgfdf ? 來(lái)源:電子嵌入式學(xué)習(xí) ? 作者:電子嵌入式學(xué)習(xí) ? 2024-07-22 09:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一. 前言

??GPIO全稱General Purpose Input Output,是微控制數(shù)字輸入/輸出的基本模塊,可以實(shí)現(xiàn)微控制器與外部環(huán)境的數(shù)字進(jìn)行交換。借助GPIO微控制器可以實(shí)現(xiàn)對(duì)外圍設(shè)備(像控制led亮滅,按鍵控制,軟件模擬IIC等)直觀又簡(jiǎn)單的控制。

GPIO的8種模式

?1. 輸入模式:
??(1)上拉輸入模式 GPIO_Mode_IPU
??(2)下拉輸入模式 GPIO_Mode_IPD
??(3)模擬輸入模式 GPIO_Mode_AIN
??(4)浮空輸入模式 GPIO_Mode_IN_FLOATING

2. 輸出模式:
??(1)推挽輸出模式 GPIO_Mode_Out_PP
??(2)開(kāi)漏輸出模式 GPIO_Mode_Out_OD
??(3)復(fù)用推挽輸出模式 GPIO_Mode_AF_PP
??(4)復(fù)用開(kāi)漏輸出模式 GPIO_Mode_AF_OD

3. 最大輸出速度:
??(1)2MHz GPIO_Speed_2MHz
??(2)25MHz GPIO_Speed_25MHz
??(3)50MHz GPIO_Speed_50MHz

636696d2-430c-11ef-a4b4-92fbcf53809c.png

二. 輸入模式

輸入驅(qū)動(dòng)器

??GPIO的輸入驅(qū)動(dòng)器主要由TTL肖特基觸發(fā)器、帶開(kāi)關(guān)的上拉電阻和帶開(kāi)關(guān)的下拉電阻組成,GPIO的輸入驅(qū)動(dòng)器沒(méi)有多路選擇開(kāi)關(guān),輸入信號(hào)送到GPIO輸入數(shù)據(jù)寄存器的同時(shí),送給了片上外設(shè),所以GPIO的輸入沒(méi)有復(fù)用功能選項(xiàng)。

1. 上拉輸入模式

??上拉就是把當(dāng)前引腳的電位拉高,比如拉到VDD。弱上拉和強(qiáng)上拉的區(qū)別只是上拉電阻的阻值不同。
??輸出緩沖器被禁止,TTL施密特觸發(fā)輸入被激活,此時(shí)圖中GPIO內(nèi)部上拉電阻端的開(kāi)關(guān)閉合,接通VDD,下拉電阻端開(kāi)關(guān)斷開(kāi)。此時(shí)引腳默認(rèn)輸入為高電平。

6381623c-430c-11ef-a4b4-92fbcf53809c.png

2. 下拉輸入模式

??下拉就是把當(dāng)前引腳的電位拉低,比如拉到GND。
??輸出緩沖器被禁止,TTL施密特觸發(fā)輸入被激活,此時(shí)圖中GPIO內(nèi)部下拉電阻端的開(kāi)關(guān)閉合,接通VSS,上拉電阻端開(kāi)關(guān)斷開(kāi)。此時(shí)引腳默認(rèn)輸入為低電平。

63a50aca-430c-11ef-a4b4-92fbcf53809c.png

3. 模擬輸入模式

??應(yīng)用于ADC模擬輸入,或者是低功耗下的省電。
??輸出緩沖器被禁止,TTL施密特觸發(fā)輸入被禁止。

63ca498e-430c-11ef-a4b4-92fbcf53809c.png

4. 浮空輸入模式

??浮空就是GPIO輸入引腳即不接高電平,也不接低電平。由于邏輯器件的內(nèi)部結(jié)構(gòu),當(dāng)它輸入引腳懸空時(shí),相當(dāng)于該引腳接了高電平。實(shí)際運(yùn)用時(shí),引腳不建議懸空,容易受到干擾。

輸出緩沖器被禁止,TTL施密特觸發(fā)輸入被激活,GPIO內(nèi)部下拉電阻端的開(kāi)關(guān)斷開(kāi),上拉電阻端開(kāi)關(guān)也斷開(kāi)。

63ec255e-430c-11ef-a4b4-92fbcf53809c.png

三. 輸出模式

輸出驅(qū)動(dòng)器

GPIO的輸出驅(qū)動(dòng)器主要由多路選擇器、輸出控制邏輯和一對(duì)互補(bǔ)的MOS管組成。多路選擇器是根據(jù)用戶的設(shè)置決定某個(gè)引腳是輸出還是復(fù)用功能輸出。輸出控制邏輯和一對(duì)互補(bǔ)的MOS管是根據(jù)用戶的設(shè)置通過(guò)控制P-MOS管和N-MOS管的導(dǎo)通還是斷開(kāi)決定GPIO是開(kāi)漏、推挽輸出模式還是關(guān)閉。

1. 推挽輸出模式

??推挽輸出既可以輸出高電平,也可以輸出低電平,連接數(shù)字器件。推挽輸出的結(jié)構(gòu)一般是指兩個(gè)三極管分別受到兩個(gè)互補(bǔ)信號(hào)的控制,在一個(gè)三極管被導(dǎo)通的時(shí)候另一個(gè)三極管被截止。輸出的高點(diǎn)電平則是由IC的電源決定。

640d1f48-430c-11ef-a4b4-92fbcf53809c.png

2. 開(kāi)漏輸出模式

??開(kāi)漏模式一般用在IIC等需要“線與”功能的總線電路中,除此之外,還可以用在電平不匹配的場(chǎng)合,像需要輸出5V的高電平就可以在外部接入一個(gè)上拉電阻,上拉電源為5v,并把GPIO設(shè)置為開(kāi)漏模式,當(dāng)輸出高阻態(tài)時(shí),由上拉電源向外部輸出5V的電平。

6440e346-430c-11ef-a4b4-92fbcf53809c.png

在開(kāi)漏輸出時(shí),只有N-MOS會(huì)參與工作,上方的P-MOS管完全不工作。當(dāng)輸出控制為0(低電平)時(shí),P-MOS管關(guān)閉,N-MOS管導(dǎo)通,使得輸出GND。當(dāng)輸出控制為1(高電平)時(shí),P-MOS管和N-MOS管全部關(guān)閉,引腳既不輸出高電平也不輸出低電平,此時(shí)呈現(xiàn)一個(gè)高阻態(tài)。正常使用的情況下,必須接一個(gè)上拉電阻,若不接上拉電阻,則引腳只能輸出低電平。
??在推挽輸出時(shí),施密特觸發(fā)器是打開(kāi)的,即輸入可用,通過(guò)輸入數(shù)據(jù)寄存器GPIOx_IDR可讀取I/O的實(shí)際狀態(tài)。

3. 復(fù)用推挽輸出模式

??GPIO復(fù)用為其他外設(shè)(IIC的SCL,SDA)。除了輸出信號(hào)的來(lái)源改變 ,其他操作與推挽輸出的功能相同。

64713686-430c-11ef-a4b4-92fbcf53809c.png

4. 復(fù)用開(kāi)漏輸出模式

??GPIO復(fù)用為其他外設(shè)(TX1,MOSI,MISO,SCK,SS)。除了輸出信號(hào)的來(lái)源改變 ,其他操作與開(kāi)漏輸出的功能相同。

648f486a-430c-11ef-a4b4-92fbcf53809c.png

四. GPIO的選用

當(dāng)作為普通GPIO輸入:根據(jù)需要配置該引腳為浮空、上拉或下拉輸入,同時(shí)不使能該引腳對(duì)應(yīng)的所有復(fù)用功能模塊。

當(dāng)作為普通GPIO輸出:根據(jù)需要配置該引腳為推挽輸出或開(kāi)漏輸出,同時(shí)不使能該引腳對(duì)應(yīng)的所有復(fù)用功能模塊。

當(dāng)作為普通模擬輸入:配置該引腳為模擬輸入模式,同時(shí)不使能該引腳對(duì)應(yīng)的所有復(fù)用功能模塊。

當(dāng)作為內(nèi)置外設(shè)的輸入:根據(jù)需要配置該引腳為浮空、上拉或下拉輸入,同時(shí)使能該引腳對(duì)應(yīng)的某個(gè)復(fù)用功能模塊。

當(dāng)作為內(nèi)置外設(shè)的輸出:根據(jù)需要配置該引腳為復(fù)用推挽輸出或復(fù)用開(kāi)漏輸出,同時(shí)使能該引腳對(duì)應(yīng)的所有復(fù)用功能模塊。

五. 有關(guān)GPIO輸入/輸出模式的初始化(F1系列 HAL庫(kù)函數(shù))

?GPIO_InitTypeDef 類型的結(jié)構(gòu)體

typedef struct{  uint32_t Pin;       /*!<指定要配置的GPIO引腳。該參數(shù)可以是@ref GPIO_pins_define 的任意值 */  uint32_t Mode;      /*!<指定所選引腳的工作模式。該參數(shù)可以是@ref GPIO_mode_define 的值 */  uint32_t Pull;      /*!< 指定所選引腳的上拉或下拉激活。該參數(shù)可以是@ref GPIO_pull_define的值 */  uint32_t Speed;     /*!< 指定所選引腳的速度。該參數(shù)可以是@ref GPIO_speed_define的值 */} GPIO_InitTypeDef;

可以選擇的GPIO引腳

/** @defgroup GPIO_pins_define GPIO pins define  * @{  */#define GPIO_PIN_0                 ((uint16_t)0x0001)  /* Pin 0 selected    */#define GPIO_PIN_1                 ((uint16_t)0x0002)  /* Pin 1 selected    */#define GPIO_PIN_2                 ((uint16_t)0x0004)  /* Pin 2 selected    */#define GPIO_PIN_3                 ((uint16_t)0x0008)  /* Pin 3 selected    */#define GPIO_PIN_4                 ((uint16_t)0x0010)  /* Pin 4 selected    */#define GPIO_PIN_5                 ((uint16_t)0x0020)  /* Pin 5 selected    */#define GPIO_PIN_6                 ((uint16_t)0x0040)  /* Pin 6 selected    */#define GPIO_PIN_7                 ((uint16_t)0x0080)  /* Pin 7 selected    */#define GPIO_PIN_8                 ((uint16_t)0x0100)  /* Pin 8 selected    */#define GPIO_PIN_9                 ((uint16_t)0x0200)  /* Pin 9 selected    */#define GPIO_PIN_10                ((uint16_t)0x0400)  /* Pin 10 selected   */#define GPIO_PIN_11                ((uint16_t)0x0800)  /* Pin 11 selected   */#define GPIO_PIN_12                ((uint16_t)0x1000)  /* Pin 12 selected   */#define GPIO_PIN_13                ((uint16_t)0x2000)  /* Pin 13 selected   */#define GPIO_PIN_14                ((uint16_t)0x4000)  /* Pin 14 selected   */#define GPIO_PIN_15                ((uint16_t)0x8000)  /* Pin 15 selected   */#define GPIO_PIN_All               ((uint16_t)0xFFFF)  /* All pins selected */
#define GPIO_PIN_MASK              0x0000FFFFu /* PIN mask for assert test *//**  * @}  */

可以選擇的GPIO引腳模式

/** @defgroup GPIO_mode_define GPIO mode define  * @{  */#define  GPIO_MODE_INPUT                        0x00000000u   /*!< 輸入模式      */#define  GPIO_MODE_OUTPUT_PP                    0x00000001u   /*!< 推挽輸出模式              */#define  GPIO_MODE_OUTPUT_OD                    0x00000011u   /*!< 開(kāi)漏輸出模式              */#define  GPIO_MODE_AF_PP                        0x00000002u   /*!< 復(fù)用推挽輸出模式    */#define  GPIO_MODE_AF_OD                        0x00000012u   /*!< 復(fù)用開(kāi)漏輸出模式    */#define  GPIO_MODE_AF_INPUT                     GPIO_MODE_INPUT   /*!< 復(fù)用功能輸入模式      */
#define  GPIO_MODE_ANALOG                       0x00000003u   /*!< 模擬輸入模式  */
#define  GPIO_MODE_IT_RISING                    0x10110000u   /*!< 上升沿觸發(fā)檢測(cè)的外部中斷模式         */#define  GPIO_MODE_IT_FALLING                   0x10210000u   /*!< 下降沿觸發(fā)檢測(cè)的外部中斷模式         */#define  GPIO_MODE_IT_RISING_FALLING            0x10310000u   /*!< 上升/下降沿觸發(fā)檢測(cè)的外部中斷模式  */
#define  GPIO_MODE_EVT_RISING                   0x10120000u   /*!< 上升沿觸發(fā)檢測(cè)的外部事件模式         */#define  GPIO_MODE_EVT_FALLING                  0x10220000u   /*!< 下降沿觸發(fā)檢測(cè)的外部事件模式         */#define  GPIO_MODE_EVT_RISING_FALLING           0x10320000u   /*!< 上升/下降沿觸發(fā)檢測(cè)的外部事件模式  *//**  * @}  */

可以選擇的GPIO引腳上拉/下拉激活

/** @defgroup GPIO_pull_define GPIO pull define  * @brief GPIO Pull-Up or Pull-Down Activation  * @{  */#define  GPIO_NOPULL        0x00000000u   /*!< 沒(méi)有激活上拉或下拉  */#define  GPIO_PULLUP        0x00000001u   /*!< 上拉激活           */#define  GPIO_PULLDOWN      0x00000002u   /*!< 下拉激活           *//**  * @}  */

可以選擇的GPIO引腳的速度

/** @defgroup GPIO_speed_define  GPIO speed define  * @brief GPIO Output Maximum frequency  * @{  */#define  GPIO_SPEED_FREQ_LOW              (GPIO_CRL_MODE0_1) /*!< Low speed 低速 */#define  GPIO_SPEED_FREQ_MEDIUM           (GPIO_CRL_MODE0_0) /*!< Medium speed 中速 */#define  GPIO_SPEED_FREQ_HIGH             (GPIO_CRL_MODE0)   /*!< High speed 高速 *//**  * @}  */

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2312

    文章

    11189

    瀏覽量

    374504
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1333

    瀏覽量

    56429
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【CANopen實(shí)戰(zhàn)】如何實(shí)現(xiàn)PDO數(shù)據(jù)變化即刻發(fā)送(事件觸發(fā)模式詳解

    【CANopen實(shí)戰(zhàn)】如何實(shí)現(xiàn)PDO數(shù)據(jù)變化即刻發(fā)送(事件觸發(fā)模式詳解
    的頭像 發(fā)表于 04-09 14:39 ?107次閱讀
    【CANopen實(shí)戰(zhàn)】如何實(shí)現(xiàn)PDO數(shù)據(jù)變化即刻發(fā)送(事件觸發(fā)<b class='flag-5'>模式</b><b class='flag-5'>詳解</b>)

    DC 轉(zhuǎn)換器氣密性檢測(cè)儀工作原理詳解-岳信儀器

    。DC轉(zhuǎn)換器氣密性檢測(cè)儀,就是通過(guò)科學(xué)方法檢測(cè)其密封性能,精準(zhǔn)判斷是否存在泄漏,下面用通俗語(yǔ)言詳解其核心工作原理。DC轉(zhuǎn)換器氣密性檢測(cè)儀的核心工作邏輯的是“密封腔壓
    的頭像 發(fā)表于 04-07 17:12 ?128次閱讀
    DC 轉(zhuǎn)換器氣密性檢測(cè)儀<b class='flag-5'>工作原理</b><b class='flag-5'>詳解</b>-岳信儀器

    晶圓劃片機(jī)工作原理及操作流程詳解

    晶圓劃片機(jī)工作原理及操作流程詳解在半導(dǎo)體制造后道工藝中,晶圓劃片機(jī)是核心精密裝備,核心功能是將完成前道光刻、刻蝕工序的整片晶圓,精準(zhǔn)切割為獨(dú)立芯片(Die),其切割精度直接決定芯片良率與封裝效率
    的頭像 發(fā)表于 03-26 20:40 ?158次閱讀
    晶圓劃片機(jī)<b class='flag-5'>工作原理</b>及操作流程<b class='flag-5'>詳解</b>

    【MCU學(xué)習(xí)】GPIO詳解

    本實(shí)驗(yàn)通過(guò)一個(gè)“小實(shí)驗(yàn)框架 GPIO Mode Lab”,在同一個(gè) GPIO 引腳上依次配置不同模式,并用 ADC 探頭測(cè)量電壓、同時(shí)讀取數(shù)字電平,系統(tǒng)化地觀察。
    的頭像 發(fā)表于 01-24 11:45 ?4788次閱讀
    【MCU學(xué)習(xí)】<b class='flag-5'>GPIO</b><b class='flag-5'>詳解</b>

    請(qǐng)問(wèn)CW32芯片的三工作模式是什么?

    CW32芯片的三工作模式是什么?
    發(fā)表于 12-26 06:48

    IO口8工作模式和應(yīng)用

    、SPI、PWM、I2C擴(kuò)展芯片功能失去GPIO獨(dú)立性外設(shè)專用,電流特性一致一、IO口常見(jiàn)工作模式 輸入模式(Input Mode) 描述: IO口配置為接收外部信號(hào),通常用來(lái)識(shí)別開(kāi)關(guān)
    發(fā)表于 11-14 06:46

    CW32 UART低功耗模式詳解

    介紹 1.CW32L083工作模式 CW32L083 支持三工作模式,由內(nèi)嵌的電源管理模塊自動(dòng)完成電源的統(tǒng)一管理。三
    發(fā)表于 11-12 07:24

    沖擊傳感器工作原理和應(yīng)用領(lǐng)域詳解

    離不開(kāi)沖擊傳感器。沖擊傳感器工作原理:沖擊傳感器(又稱沖擊加速度計(jì))是一測(cè)量瞬時(shí)加速度或沖擊力的設(shè)備,主要基于以下工作原理:1.壓電效應(yīng):某些晶體材料在受到機(jī)械
    的頭像 發(fā)表于 10-24 12:02 ?718次閱讀
    沖擊傳感器<b class='flag-5'>工作原理</b>和應(yīng)用領(lǐng)域<b class='flag-5'>詳解</b>

    從入門(mén)到精通:基于開(kāi)源代碼的BLE四模式開(kāi)發(fā)詳解

    通過(guò)分析BLE低功耗藍(lán)牙的四核心工作模式,結(jié)合可下載、可修改的開(kāi)放源碼,本教程為開(kāi)發(fā)者提供一套系統(tǒng)、實(shí)用的開(kāi)發(fā)學(xué)習(xí)路徑。 BLE(Bluetooth Low Energy): 也稱為
    的頭像 發(fā)表于 10-09 18:00 ?672次閱讀
    從入門(mén)到精通:基于開(kāi)源代碼的BLE四<b class='flag-5'>種</b><b class='flag-5'>模式</b>開(kāi)發(fā)<b class='flag-5'>詳解</b>

    【NCS隨筆】如何進(jìn)入system_off深度睡眠模式以及配置GPIO中斷喚醒

    【NCS隨筆】如何進(jìn)入system_off深度睡眠模式以及配置GPIO中斷喚醒 本文章主要是講解NCS下面使用nRF54L15如何進(jìn)入system_off模式,以及如何配置通過(guò)按鍵喚醒 一、如何進(jìn)
    的頭像 發(fā)表于 09-29 00:56 ?906次閱讀
    【NCS隨筆】如何進(jìn)入system_off深度睡眠<b class='flag-5'>模式</b>以及配置<b class='flag-5'>GPIO</b>中斷喚醒

    STM32 GPIO開(kāi)漏,NMOS導(dǎo)通能承受多大電流?

    STM32 GPIO 開(kāi)漏模式,NMOS 導(dǎo)通時(shí)能承受多大電流而不至于損壞。
    發(fā)表于 07-31 07:13

    STM32項(xiàng)目分享:智能語(yǔ)音臺(tái)燈(機(jī)智云)

    01—項(xiàng)目簡(jiǎn)介1.功能詳解STM32智能語(yǔ)音臺(tái)燈(機(jī)智云)功能如下:STM32F103C8T6單片機(jī)作為主控單元按鍵切換模式,支持自
    的頭像 發(fā)表于 07-24 18:03 ?1793次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目分享:智能語(yǔ)音臺(tái)燈(機(jī)智云)

    Air780EPM應(yīng)用開(kāi)發(fā):解鎖GPIO與LED的N交互模式

    今天特別分享探索Air780EPM中GPIO與LED的多樣交互!本文介紹N交互模式,包括脈沖控制、狀態(tài)切換及多LED聯(lián)動(dòng),為智能設(shè)備開(kāi)發(fā)提供豐富技術(shù)選型。適用于智能照明、狀態(tài)指示等物聯(lián)網(wǎng)場(chǎng)景。 一
    的頭像 發(fā)表于 05-29 14:31 ?871次閱讀
    Air780EPM應(yīng)用開(kāi)發(fā):解鎖<b class='flag-5'>GPIO</b>與LED的N<b class='flag-5'>種</b>交互<b class='flag-5'>模式</b>

    GPIO配置的工作原理是什么?

    我使用 EZ-USB 配置實(shí)用程序,我想知道是否有人知道 GPIO 配置的工作原理。 例如,GPIO0 可以用作傳感器復(fù)位,我知道這個(gè) GPIO0 用于重置傳感器,但我不明白的是選項(xiàng)用
    發(fā)表于 05-19 06:56

    電動(dòng)調(diào)壓器的工作原理

    電壓調(diào)壓器是一用于控制電路中電壓的裝置,其工作原理因類型而異,以下是幾種常見(jiàn)電壓調(diào)壓器的工作原理
    的頭像 發(fā)表于 05-12 13:46 ?1596次閱讀
    電動(dòng)調(diào)壓器的<b class='flag-5'>工作原理</b>