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

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

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

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

介紹GPIO的定義和GPIO不同模式間的區(qū)別與實(shí)現(xiàn)方式

冬至配餃子 ? 來源:嵌入式悅翔園 ? 作者:JamesBin ? 2022-08-25 18:25 ? 次閱讀

一、前言

GPIO全稱General Purpose Input Output 即通用輸入/輸出,其實(shí)GPIO的本質(zhì)就是芯片的一個(gè)引腳,通常在ARM中所有的I/O都是通用的。不過由于每個(gè)開發(fā)板上都會(huì)設(shè)計(jì)不同的外圍電路,這就造成GPIO的功能可能有所不同,大部分GPIO都是有復(fù)用功能的,比如有些GPIO可能是串口的TX或RX,也可能是I2C的SCL或SDA線。

所以我們不僅要知道GPIO能夠輸出高低電平,還要理解為什么有些GPIO可以復(fù)用某些功能,而其他的不可以。

二、GPIO內(nèi)部結(jié)構(gòu)

poYBAGMHTQCAOF3CAAD3PL0Qr7g780.png

我們?cè)谑褂肎PIO的時(shí)候可能不會(huì)去想為什么我們通過寫代碼或者操作寄存器就可以控制一個(gè)引腳的高低電平。

今天就讓我們一起來看看為什么我們通過操作寄存器(其實(shí)寫代碼的過程就是在操作寄存器)就能控制引腳輸入或者輸出。

我們想要想控制一個(gè)GPIO口的需要操作7個(gè)寄存器,分別是CRL,CRH,IDR,ODR,BRR,BSRR,LCKR 我們對(duì)GPIO的操作本質(zhì)上就是在對(duì)這些寄存器進(jìn)行讀寫操作,以下是這些寄存器的名稱:

pYYBAGMHTRmAVmp_AAChUOEymQ4405.png

我們首先分析上面的結(jié)構(gòu)電路:

1、保護(hù)二極管 保護(hù)二極管從它的名字就不難想到他是用來對(duì)系統(tǒng)進(jìn)行保護(hù)的,通過兩個(gè)二極管的導(dǎo)通可以防止引腳外部輸入電壓過低或過高。當(dāng)電壓過高時(shí),上方的保護(hù)二極管導(dǎo)通。當(dāng)電壓過低時(shí),下方的二極管導(dǎo)通,防止不正常電壓導(dǎo)入到芯片內(nèi)部造成芯片燒毀。

2、P·MOS管和N·MOS管: GPIO經(jīng)過兩個(gè)二極管的保護(hù)后向上流入輸入模式,向下流入輸出模式,而輸出模式的控制是由一個(gè)由P·MOS管和N·MOS管組成的單元電路,該電路主要是控制輸出的模式,由該結(jié)構(gòu)狗策劃給你的單元電路具有推挽輸出開漏輸出兩種模式。

當(dāng)系統(tǒng)配置為推挽輸出模式時(shí):

當(dāng)系統(tǒng)配置為開漏輸出模式時(shí):

推挽輸出模式一般應(yīng)用在輸出電平為0和3.3V而且需要高速切換開關(guān)狀態(tài)的場(chǎng)合開漏輸出模式一般應(yīng)用在I2C、SMBUS通信等需要 線與功能的總線電路中

單片機(jī)中除了必須用開漏模式的場(chǎng)合,一般習(xí)慣使用推挽輸出模式

3、輸出數(shù)據(jù)寄存器:前面我們知道雙了MOS管結(jié)構(gòu)電路的輸入信號(hào),是由GPIO輸出數(shù)據(jù)寄存器GPIOx_ODR提供的,因此我們可以通過修改輸出數(shù)據(jù)寄存器的值,就可以修改GPIO引腳的輸出電平。而置位/復(fù)位寄存器GPIOx_BSRR可以通過修改輸出數(shù)據(jù)寄存器的值,從而影響電路的輸出。

4、復(fù)用功能輸出:復(fù)用功能輸出中的復(fù)用是指STM32的其他片上外設(shè)對(duì)GPIO引腳進(jìn)行控制,此時(shí)GPIO引腳用作該外設(shè)功能的一部分,算是第二用途。從其他外設(shè)引出來的復(fù)用功能輸出信號(hào)與GPIO本身的數(shù)據(jù)寄存器都連接到雙MOS管結(jié)構(gòu)的輸入中。

三、輸入輸出模式

GPIO共有8中輸入輸出模式,分別是:上拉輸入、下拉輸入、浮空輸入、模擬輸入、開漏輸出、推挽輸出、開漏復(fù)用輸出、推挽復(fù)用輸出 ,下面我們?cè)敿?xì)介紹以下上面的八種輸入輸出模式。

上拉輸入: GPIO_Mode_IPU

下拉輸入: GPIO_Mode_IPD

浮空輸入: GPIO_Mode_IN_FLOATING

模擬輸入: GPIO_Mode_AIN

開漏輸出: GPIO_Mode_Out_OD

推挽輸出: GPIO_Mode_Out_PP

開漏復(fù)用: GPIO_Mode_AF_OD

推完復(fù)用: GPIO_Mode_AF_PP

這里詳細(xì)講一下幾個(gè)常用的模式:

3.1 浮空輸入

浮空輸入模式下,I/O端口的電平信號(hào)直接進(jìn)入輸入數(shù)據(jù)寄存器。也就是說,I/O的電平狀態(tài)是不確定的,完全由外部輸入決定;如果在該引腳懸空(在無信號(hào)輸入)的情況下,讀取該端口的電平是不確定的,通常用于IIC、USART等總線設(shè)備上。

pYYBAGMHTS-APSI0AAD66PlFA0I686.png

3.2 上拉輸入模式

上拉輸入模式下,I/O端口的電平信號(hào)直接進(jìn)入輸入數(shù)據(jù)寄存器。但是在I/O端口懸空(在無信號(hào)輸入)的情況下,輸入端的電平保持在高電平(并且在I/O端口輸入為低電平的時(shí)候,輸入端的電平也是低電平)

poYBAGMHTUCAeyb5AAElPRc6loU619.png

3.3 下拉輸入模式

下拉輸入模式下,I/O端口的電平信號(hào)直接進(jìn)入輸入數(shù)據(jù)寄存器。但是在I/O端口懸空(在無信號(hào)輸入)的情況下,輸入端的電平保持在低電平;并且在I/O端口輸入為高電平的時(shí)候,輸入端的電平也是高電平。

poYBAGMHTU-AIiWiAAEo4E3Qb9g145.png

3.4 模擬輸入模式

模擬輸入模式下,I/O端口的模擬信號(hào)(電壓信號(hào),而非電平信號(hào))直接模擬輸入到片上外設(shè)模塊,比如ADC模塊等。

pYYBAGMHTV6AIDHOAAEeJ1oJ_6c812.png

3.5 開漏輸出模式

見上面二中的詳細(xì)介紹;

3.6 開漏復(fù)用輸出模式

開漏復(fù)用輸出模式,與開漏輸出模式很是類似。只是輸出的高低電平的來源,不是讓CPU直接寫輸出數(shù)據(jù)寄存器,取而代之利用片上外設(shè)模塊的復(fù)用功能輸出來決定的,一般用于片內(nèi)外設(shè)功能:TX1,MOSI,MISO,SCK,SS

3.7 推挽輸出模式

見上面二中的詳細(xì)介紹;

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

推挽復(fù)用輸出模式,與推挽輸出模式很是類似。只是輸出的高低電平的來源,不是讓CPU直接寫輸出數(shù)據(jù)寄存器,而是利用片上外設(shè)模塊的復(fù)用功能輸出來決定的,常見采用推挽輸出模式的一般為片內(nèi)外設(shè)功能IIC的SCL、SDL。

pYYBAGMHTXKAFD8iAAFdDt2es8A351.png

四、開漏輸出和推挽輸出的區(qū)別

開漏輸出和推挽輸出模式的區(qū)別主要是開漏輸出只可以輸出強(qiáng)低電平,高電平得靠外部電阻拉高。輸出端相當(dāng)于三極管的集電極,適合于做電流型的驅(qū)動(dòng),其吸收電流的能力相對(duì)強(qiáng)(一般20ma以內(nèi));推挽輸出可以輸出強(qiáng)高、低電平,連接數(shù)字器件。

pYYBAGMHTYOAcyyfAACNQqJ09cI359.png

五、STM32中GPIO的配置

在固件庫開發(fā)中,操作寄存器 CRH 和 CRL 來配置 IO 口的模式和速度是通過 GPIO 初始化函數(shù)完成:

poYBAGMHTZmALSCtAABGt0GOjrI854.png

初始化 GPIO 的常用格式是:

GPIO_InitTypeDefGPIO_InitStructure;

pYYBAGMHTamAe1oiAABnWJKmnO4392.png

IO 口速度設(shè)置有三個(gè)可選值:

poYBAGMHTb2AdC6aAAAt5qiorjg677.png

模式則有8個(gè)可選定義如下:

pYYBAGMHTdeAa4ACAACHp-NayhM461.png

六、總結(jié)

本文主要介紹了GPIO的定義和GPIO不同模式間的區(qū)別與實(shí)現(xiàn)方式,觀看完本文相信你對(duì)于GPIO會(huì)有一個(gè)更深的理解,我們?nèi)绻亲鲕浖目梢圆挥锰P(guān)注于GPIO是如何實(shí)現(xiàn)的,但是我們需要知道每個(gè)模式下GPIO的特點(diǎn)和應(yīng)用場(chǎng)合,只有這樣我們?cè)趯?shí)際應(yīng)用中才能更好的配置出最合適的那個(gè)。

若控制輸出為1(它無法直接輸出高電平)時(shí),則P-MOS管和N-MOS管都關(guān)閉,所以開漏輸出模式下引腳既不輸出高電平,也不輸出低電平,為高阻態(tài)

如果我們控制輸出為0,低電平,則P-MOS管關(guān)閉,N-MOS管導(dǎo)通,使輸出接地;

上方的P-MOS管完全不工作;

當(dāng)引腳高低電平切換時(shí),兩個(gè)MOS管輪流導(dǎo)通,P管負(fù)責(zé)灌電流,N管負(fù)責(zé)拉電流,使其負(fù)載能力和開關(guān)速度都比普通的方式有很大的提高。**推挽輸出的低電平為0V,高電平為3.3V**。

若向該結(jié)構(gòu)中輸入低電平時(shí),經(jīng)過反向后,下方的N-MOS管導(dǎo)通,上方的P-MOS關(guān)閉,對(duì)外輸出低電平。

若向該結(jié)構(gòu)中輸入高電平,經(jīng)過反向后,上方的P-MOS導(dǎo)通,下方的N-MOS關(guān)閉,對(duì)外輸出高電平。


審核編輯:劉清

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

    關(guān)注

    109

    文章

    2536

    瀏覽量

    70000
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1276

    瀏覽量

    53631
  • 低電平
    +關(guān)注

    關(guān)注

    1

    文章

    175

    瀏覽量

    13613
收藏 人收藏

    評(píng)論

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

    基于GPIO的按鍵板實(shí)現(xiàn)方案

    介紹簡(jiǎn)單的ADC實(shí)現(xiàn),需要IC提供一個(gè)額外的ADC。但出于IC成本的考慮,無法提供這個(gè)的ADC時(shí),但提供了多個(gè)額外的GPIO(General Purpose Input Output:雙向的:可以
    的頭像 發(fā)表于 10-18 11:43 ?3727次閱讀
    基于<b class='flag-5'>GPIO</b>的按鍵板<b class='flag-5'>實(shí)現(xiàn)</b>方案

    GPIO不同模式區(qū)別實(shí)現(xiàn)方式

    GPIO全稱General Purpose Input Output 即通用輸入/輸出,其實(shí)GPIO的本質(zhì)就是芯片的一個(gè)引腳,通常在ARM中所有的I/O都是通用的。
    的頭像 發(fā)表于 10-09 15:09 ?1969次閱讀

    HAL庫GPIO輸入模式在cubemx中的配置

    上節(jié)課程介紹GPIO輸出模式的配置,包括修改IO標(biāo)簽,選擇GPIO模式GPIO上下拉等,本節(jié)
    的頭像 發(fā)表于 11-02 09:33 ?2246次閱讀

    STM32 GPIO的工作模式

    在之前圍繞STM32的GPIO的基本結(jié)構(gòu)進(jìn)行了介紹,圖1為STM32的5V容忍的GPIO口內(nèi)部基本結(jié)構(gòu)圖,圖2為GPIO的基本結(jié)構(gòu)中各個(gè)模塊部分的概述。
    發(fā)表于 04-14 10:40 ?2042次閱讀
    STM32 <b class='flag-5'>GPIO</b>的工作<b class='flag-5'>模式</b>

    STM32的8種GPIO輸入輸出模式

    STM32的8種GPIO輸入輸出模式參考文章“STM32的8種GPIO輸入輸出模式深入詳解”和“STM32中GPIO的8種工作
    發(fā)表于 11-26 17:06 ?16次下載
    STM32的8種<b class='flag-5'>GPIO</b>輸入輸出<b class='flag-5'>模式</b>

    GPIO的8種工作模式詳細(xì)介紹

    我們?cè)谟肧TM32這顆MCU的時(shí)候,用的最多的也是最基礎(chǔ)的應(yīng)該就是GPIO外設(shè)了,而在STM32的HAL庫中GPIO有8種工作模式4種輸入狀態(tài),4種輸出狀態(tài)(2種復(fù)用輸出2種普通輸出),分別對(duì)應(yīng)如下
    發(fā)表于 11-30 13:36 ?9次下載
    <b class='flag-5'>GPIO</b>的8種工作<b class='flag-5'>模式</b>詳細(xì)<b class='flag-5'>介紹</b>!

    HAL庫-GPIO介紹

    一.GPIO 使用1.輸入輸出模式(8種)GPIO_Mode_AIN #模擬輸入GPIO_Mode_IN_FLOATING #浮空輸入
    發(fā)表于 12-28 19:32 ?2次下載
    HAL庫-<b class='flag-5'>GPIO</b><b class='flag-5'>介紹</b>

    STM32學(xué)習(xí)筆記---GPIO

    STM32的學(xué)習(xí)筆記—GPIO我使用的是STM32F401ZGT6,有7組IO口,每組16個(gè)引腳,共112個(gè)引腳。因?yàn)樘肆耍_實(shí)容易出錯(cuò),還請(qǐng)賜教參考官方文檔:八種IO口模式區(qū)別結(jié)構(gòu)原理該單片機(jī)在
    發(fā)表于 01-13 16:31 ?6次下載
    STM32學(xué)習(xí)筆記---<b class='flag-5'>GPIO</b>

    GPIO定義GPIO不同模式區(qū)別實(shí)現(xiàn)方式

    保護(hù)二極管: 保護(hù)二極管從它的名字就不難想到他是用來對(duì)系統(tǒng)進(jìn)行保護(hù)的,通過兩個(gè)二極管的導(dǎo)通可以防止引腳外部輸入電壓過低或過高。當(dāng)電壓過高時(shí),上方的保護(hù)二極管導(dǎo)通。當(dāng)電壓過低時(shí),下方的二極管導(dǎo)通,防止不正常電壓導(dǎo)入到芯片內(nèi)部造成芯片燒毀。
    的頭像 發(fā)表于 08-08 10:51 ?2280次閱讀

    GPIO不同模式之間的區(qū)別實(shí)現(xiàn)方式

    GPIO全稱General Purpose Input Output ,即通用輸入/輸出。其實(shí)GPIO的本質(zhì)就是芯片的一個(gè)引腳。由于每個(gè)開發(fā)板上都會(huì)設(shè)計(jì)不同的外圍電路,這就造成了GPIO的功能可能有
    的頭像 發(fā)表于 10-28 09:45 ?2328次閱讀

    不同GPIO類庫的區(qū)別

    重點(diǎn)來講解一下什么是類庫,如何使用,以及不同的GPIO類庫的區(qū)別
    的頭像 發(fā)表于 07-02 15:03 ?1313次閱讀
    不同<b class='flag-5'>GPIO</b>類庫的<b class='flag-5'>區(qū)別</b>

    GPIO的八種工作模式

    GPIO是通用輸入/輸出端口的簡(jiǎn)稱,GPIO的引腳與外部設(shè)備連接,可實(shí)現(xiàn)與外部通訊、控制外部硬件或者采集外部硬件數(shù)據(jù)的功能。GPIO的8種輸入模式
    的頭像 發(fā)表于 07-02 16:38 ?1.1w次閱讀
    <b class='flag-5'>GPIO</b>的八種工作<b class='flag-5'>模式</b>

    STM32使用GPIO配置的5種方式

    采用五種不同的方式,具體如下: 一、使用直接寄存器訪問 這種方式是最原始的GPIO訪問方式,直接訪問GPIO的控制寄存器來配置相應(yīng)的復(fù)用功能
    的頭像 發(fā)表于 10-26 17:42 ?1810次閱讀

    GPIO的四種輸入模式介紹

    GPIO介紹 GPIO (general purpose input output)是通用輸入輸出端口的簡(jiǎn)稱,通俗來講就是單片機(jī)上的引腳,在STM32中,GPIO的工作
    的頭像 發(fā)表于 11-09 16:51 ?8048次閱讀
    <b class='flag-5'>GPIO</b>的四種輸入<b class='flag-5'>模式</b><b class='flag-5'>介紹</b>

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

    一. 前言 ??GPIO全稱General Purpose Input Output,是微控制數(shù)字輸入/輸出的基本模塊,可以實(shí)現(xiàn)微控制器與外部環(huán)境的數(shù)字進(jìn)行交換。借助GPIO微控制器可以實(shí)現(xiàn)
    的頭像 發(fā)表于 07-22 09:32 ?8387次閱讀
    STM32 <b class='flag-5'>GPIO</b>八種<b class='flag-5'>模式</b>及工作原理詳解
    主站蜘蛛池模板: 欧美伊人久久大香线蕉综合69 | 久久精品国产2020观看福利色 | 久久久久久久综合狠狠综合 | 日韩精品在线第一页 | 人人艹在线 | 亚洲综合啪啪 | 午夜小视频在线 | q2002在线观看免费 | 四虎东方va私人影库在线观看 | 夜夜爽天天狠狠九月婷婷 | 日韩精品亚洲一级在线观看 | 大胆国模一区二区三区伊人 | 激情婷婷综合 | 一级不卡毛片免费 | 天天看片天天操 | 午夜精品久久久久久 | 久久久久国产一级毛片高清版 | 日本高清www | 高清一区二区在线观看 | se97se成人亚洲网站在线观看 | 免费一看一级毛片全播放 | 5月丁香6月婷婷 | 美女视频黄的免费视频网页 | va在线观看| 亚洲www美色 | 狠狠狠操 | 一区二区三区亚洲视频 | 国产高清在线观看 | 黄色一级毛片在线观看 | 成人爽a毛片在线视频网站 成人窝窝午夜看片 | 浮荡视频在线观看免费 | 亚洲国产午夜精品理论片的软件 | 精品欧美一区二区三区在线观看 | 一区一精品 | 亚洲jjzzjjzz在线观看 | www天堂在线 | 天堂在线网 | 日韩在线天堂免费观看 | 视频一区 中文字幕 | 男操女视频网站 | 一级一级一片免费高清 |