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

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

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

STM32 GPIO實(shí)現(xiàn)與外部通訊、控制以及數(shù)據(jù)采集方案介紹

454398 ? 來(lái)源:博客園 ? 作者:謝嘉敏 ? 2020-10-19 12:13 ? 次閱讀

GPIO是什么

GPIO是通用輸入輸出端口的簡(jiǎn)稱,簡(jiǎn)單來(lái)說(shuō)就是STM32可控制的引腳,STM32芯片的GPIO引腳與外部設(shè)備連接起來(lái),從而實(shí)現(xiàn)與外部通訊、控制以及數(shù)據(jù)采集的功能。
STM32芯片的GPIO被分成很多組,每組有16個(gè)引腳,如型號(hào)為STM32F103ZET6型號(hào)的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7組GPIO,芯片一共144個(gè)引腳,其中GPIO就占了一大部分,所有的GPlO引腳都有基本的輸入輸出功能。
最基本的輸出功能是由STM32控制引腳輸出高、低電平,實(shí)現(xiàn)開(kāi)關(guān)控制,如把GPIO引腳接入到LED燈,那就可以控制LED燈的亮滅,引腳接入到繼電器或三極管,那就可以通過(guò)繼電器或三極管控制外部大功率電路的通斷。
最基本的輸入功能是檢測(cè)外部輸入電平,如把GPIO引腳連接到按鍵,通過(guò)電平高低區(qū)分按鍵是否被按下。

點(diǎn)亮PB0 LED:

GPIO功能框圖

每個(gè)GPI/O端口有兩個(gè)32位配置寄存器(GPIOX-CRL,GPIOx-CRH),兩個(gè)32位數(shù)據(jù)寄存器(GPIOxIDR和GPIOX-ODR),一個(gè)32位置位/復(fù)位寄存器(GPIOx-BSRR),一個(gè)16位復(fù)位寄存器(GPIOx-BRR)和一個(gè)32位鎖定寄存器(GPIOX-LCKR).
根據(jù)數(shù)據(jù)手冊(cè)中列出的每個(gè)I/O端口的特定硬件特征,GPIO端口的每個(gè)位可以由軟件分別配置成多種模式:

輸入浮空

輸入上拉

輸入下拉

模擬輸入

開(kāi)漏輸出

推挽式輸出

推挽式復(fù)用功能

開(kāi)漏復(fù)用功能

每個(gè)I/O端口位可以自由編程,然而I/O端口寄存器必須按32位字被訪問(wèn)(不允許半字或字節(jié)訪問(wèn)),GPIOx-BSRR和GPIOxBRR寄存器允許對(duì)任何GPIO寄存器的讀/更改的獨(dú)立訪問(wèn);這樣,在讀和更改訪間之間產(chǎn)生IRQ時(shí)不會(huì)發(fā)生危險(xiǎn)。

圖上除了I/O引腳我們能在芯片外部看到,其余部分都在芯片內(nèi)部

1:保護(hù)模塊:當(dāng)I/O引腳輸入正電壓大于VDD,電流就會(huì)流向VDD不會(huì)流進(jìn)芯片內(nèi)部,從而保護(hù)電路(遠(yuǎn)大于VDD時(shí)二極管會(huì)燒壞,因此不能將引腳直接接電極,要用電機(jī)驅(qū)動(dòng)),反之輸入負(fù)電壓超過(guò)VSS時(shí),電流就會(huì)從VSS往外流。

2:推挽、開(kāi)漏或關(guān)閉:用以下兩個(gè)寄存器配置,每4個(gè)位控制一個(gè)GPIO,配置輸入輸出的各種模式(右上的上拉下拉開(kāi)關(guān)也是用這個(gè)寄存器設(shè)置的:10)。

簡(jiǎn)化電路圖:

當(dāng)INT輸入為1,取反后為0,上方的Ug

當(dāng)INT輸入為0,取反后為1,上方的Ug=Us,VDD3.3V電流流向Ug,VDD與OUT斷開(kāi);下方的Ug>Us,GND與OUT導(dǎo)通,OUT電流流向GND。

可以輸出高低電平,用于連接數(shù)字器件,高電平由VDD決定,低電平由VSS決定。

推挽結(jié)構(gòu)指兩個(gè)三極管受兩路互補(bǔ)的信號(hào)控制,總是在一個(gè)導(dǎo)通的時(shí)候另外一個(gè)截止,優(yōu)點(diǎn)開(kāi)關(guān)效率效率高,電流大,驅(qū)動(dòng)能力強(qiáng)。

輸出高電平時(shí),電流輸出到負(fù)載,叫灌電流,可以理解成推,輸出低電平時(shí),負(fù)載電流流向芯片,叫拉電流,即挽。

開(kāi)漏輸出一般只能輸出低電平,想輸出高電平要另外加上拉電阻,而且此時(shí)NMOS處于截止?fàn)顟B(tài)(當(dāng)INT為1時(shí))

輸出高電平時(shí),VDD如果是3.3V,OUT就輸出3.3V,VDD如果是5V,OUT就輸出5V

只能輸出低電平,不能輸出高電平。

如果要輸出高電平,則需要外接上拉。

開(kāi)漏輸出具有"線與"功能,一個(gè)為低,全部為低,多用于I2C和SMBUS總線。

3:輸出數(shù)據(jù)寄存器:用以下寄存器配置,可以直接設(shè)置ODR,也可以先設(shè)置BSRR,最后ODR會(huì)被更改。

(右上的上拉下拉開(kāi)關(guān)也是用這個(gè)BSRR寄存器設(shè)置的)

4:復(fù)用功能輸出:用外設(shè)輸出時(shí)(例如串口),第3部分就沒(méi)用了。

5:輸入數(shù)據(jù)寄存器:讀出引腳數(shù)據(jù)

6:復(fù)用功能輸入:外設(shè)引腳輸入。

7:模擬輸入:ADC采集,不經(jīng)過(guò)肖特基觸發(fā)器

GPIO輸出初始化順序

1、選定具體的GPIO
2、配置GPIO工作模式(CRL和CRH寄存器)
3、控制GPIO輸出高低電平(ODR,BRR和BSRR)

點(diǎn)亮B0 LED


編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    22907

    瀏覽量

    650124
  • 三極管
    +關(guān)注

    關(guān)注

    142

    文章

    3561

    瀏覽量

    120890
  • 繼電器
    +關(guān)注

    關(guān)注

    132

    文章

    5262

    瀏覽量

    147607
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1175

    瀏覽量

    51515
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SCADA數(shù)據(jù)采集網(wǎng)關(guān)是什么?有什么功能?

    數(shù)據(jù)采集網(wǎng)關(guān)不僅負(fù)責(zé)實(shí)時(shí)數(shù)據(jù)采集,還參與數(shù)據(jù)的處理、監(jiān)控和控制,是實(shí)現(xiàn)工業(yè)自動(dòng)化和提高生產(chǎn)效率
    的頭像 發(fā)表于 09-10 14:08 ?120次閱讀
    SCADA<b class='flag-5'>數(shù)據(jù)采集</b>網(wǎng)關(guān)是什么?有什么功能?

    CKS32F107xx系列MCU的GPIO內(nèi)部硬件結(jié)構(gòu)和工作模式

    GPIO是通用輸入輸出端口的簡(jiǎn)稱,也是CKS32可控制的引腳,CKS32芯片的GPIO引腳與外部設(shè)備連接起來(lái),從而實(shí)現(xiàn)
    的頭像 發(fā)表于 07-22 09:23 ?463次閱讀
    CKS32F107xx系列MCU的<b class='flag-5'>GPIO</b>內(nèi)部硬件結(jié)構(gòu)和工作模式

    PLC采集網(wǎng)關(guān)如何實(shí)現(xiàn)多品牌PLC數(shù)據(jù)采集

    。特別是當(dāng)企業(yè)使用多個(gè)品牌的PLC設(shè)備時(shí),如何實(shí)現(xiàn)多品牌PLC數(shù)據(jù)采集,更是一個(gè)亟待解決的問(wèn)題。本文將詳細(xì)介紹PLC采集網(wǎng)關(guān)如何實(shí)現(xiàn)多品牌P
    的頭像 發(fā)表于 07-11 17:08 ?298次閱讀

    NI數(shù)據(jù)采集板卡如何連接使用?

    NI(National Instruments)數(shù)據(jù)采集板卡是一種常用的工業(yè)級(jí)數(shù)據(jù)采集設(shè)備,廣泛應(yīng)用于科學(xué)研究、工程測(cè)試、自動(dòng)化控制等領(lǐng)域。本文將介紹如何連接產(chǎn)品并使用NI
    的頭像 發(fā)表于 07-11 10:05 ?394次閱讀

    工控系統(tǒng)PLC、DCS、SCADA數(shù)據(jù)采集如何實(shí)現(xiàn)

    在現(xiàn)代工業(yè)自動(dòng)化領(lǐng)域中,數(shù)據(jù)采集控制系統(tǒng)扮演著至關(guān)重要的角色。其中,可編程邏輯控制器PLC、分布式控制系統(tǒng)DCS以及監(jiān)控與
    的頭像 發(fā)表于 06-29 11:20 ?324次閱讀

    工控數(shù)據(jù)采集平臺(tái)是什么?

    各種信息,平臺(tái)通過(guò)對(duì)這些數(shù)據(jù)的管理,幫助企業(yè)實(shí)現(xiàn)生產(chǎn)過(guò)程的優(yōu)化、設(shè)備維護(hù)、質(zhì)量控制以及能源管理等多種功能。 ? 工控數(shù)據(jù)采集平臺(tái)的主要功能和
    的頭像 發(fā)表于 06-14 15:29 ?276次閱讀

    網(wǎng)關(guān)數(shù)據(jù)采集解決方案

    隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,數(shù)據(jù)采集已成為企業(yè)運(yùn)營(yíng)、管理和決策的重要支撐。網(wǎng)關(guān)作為連接不同網(wǎng)絡(luò)的關(guān)鍵設(shè)備,其在數(shù)據(jù)采集過(guò)程中發(fā)揮著至關(guān)重要的作用。本文將詳細(xì)介紹一種網(wǎng)關(guān)數(shù)據(jù)采集解決方案,
    的頭像 發(fā)表于 03-08 16:05 ?434次閱讀
    網(wǎng)關(guān)<b class='flag-5'>數(shù)據(jù)采集解決方案</b>

    物通博聯(lián)數(shù)據(jù)采集網(wǎng)關(guān)支持電流電壓模擬量數(shù)字量485數(shù)據(jù)采集

    隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來(lái)越多的設(shè)備需要實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和控制。在工業(yè)自動(dòng)化領(lǐng)域,數(shù)據(jù)采集實(shí)現(xiàn)這一目標(biāo)的關(guān)鍵環(huán)節(jié),隨著工業(yè)自動(dòng)化水平的不斷提升,對(duì)各種類型的
    的頭像 發(fā)表于 02-02 15:46 ?256次閱讀
    物通博聯(lián)<b class='flag-5'>數(shù)據(jù)采集</b>網(wǎng)關(guān)支持電流電壓模擬量數(shù)字量485<b class='flag-5'>數(shù)據(jù)采集</b>

    基于物通博聯(lián)工業(yè)數(shù)據(jù)采集網(wǎng)關(guān)的工廠數(shù)據(jù)采集方案

    。因此,需要一種高效、穩(wěn)定、可靠的工廠數(shù)據(jù)采集方案,來(lái)實(shí)現(xiàn)對(duì)工廠生產(chǎn)過(guò)程的實(shí)時(shí)監(jiān)控和管理。 物通博聯(lián)提供基于數(shù)據(jù)采集網(wǎng)關(guān)的工廠數(shù)據(jù)采集
    的頭像 發(fā)表于 01-26 15:14 ?339次閱讀
    基于物通博聯(lián)工業(yè)<b class='flag-5'>數(shù)據(jù)采集</b>網(wǎng)關(guān)的工廠<b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>方案</b>

    使用STM32 HAL庫(kù)進(jìn)行GPIO控制的實(shí)例

    在基于STM32控制器的嵌入式系統(tǒng)開(kāi)發(fā)中,GPIO(GeneralPurposeInput/Output)控制是其中最基本、最常見(jiàn)的操作之一。通過(guò)使用
    的頭像 發(fā)表于 12-21 15:22 ?2362次閱讀

    數(shù)據(jù)采集卡的基本原理、應(yīng)用領(lǐng)域、特點(diǎn)以及選購(gòu)注意事項(xiàng)

    為數(shù)字信號(hào),從而使計(jì)算機(jī)可以讀取和處理這些信號(hào)。數(shù)據(jù)采集卡廣泛應(yīng)用于各個(gè)領(lǐng)域,包括工業(yè)控制、實(shí)驗(yàn)室測(cè)試、環(huán)境監(jiān)測(cè)、醫(yī)療設(shè)備、通信設(shè)備、軍事和航空航天等。本文將詳細(xì)介紹數(shù)據(jù)采集卡的基本原
    的頭像 發(fā)表于 12-15 09:43 ?1234次閱讀

    設(shè)備數(shù)據(jù)采集網(wǎng)關(guān)介紹-天拓四方分享

    監(jiān)控設(shè)備狀態(tài)、優(yōu)化生產(chǎn)流程、提高工作效率的重要手段。本文將詳細(xì)介紹設(shè)備數(shù)據(jù)采集網(wǎng)關(guān)的結(jié)構(gòu)、原理、功能以及在實(shí)踐中的應(yīng)用效果和優(yōu)缺點(diǎn)。 一、設(shè)備數(shù)據(jù)采集網(wǎng)關(guān)的結(jié)構(gòu)與原理 設(shè)備
    的頭像 發(fā)表于 11-16 16:40 ?688次閱讀

    STM32如何配置外部中斷?STM32外部中斷配置步驟

    STM32如何配置外部中斷?STM32外部中斷配置步驟? 作為一款現(xiàn)代化的微控制器,STM32
    的頭像 發(fā)表于 10-26 17:47 ?3040次閱讀

    STM32使用GPIO配置的5種方式

    STM32使用GPIO配置的5種方式 STM32是常見(jiàn)的一種微控制器,其GPIO模塊可以實(shí)現(xiàn)對(duì)
    的頭像 發(fā)表于 10-26 17:42 ?1232次閱讀

    GPIO的基本概念、工作原理及關(guān)鍵技術(shù)

    等的數(shù)據(jù)采集控制。本文將介紹GPIO的基本概念、工作原理以及一些關(guān)鍵技術(shù),幫助讀者更好地理解GPIO
    的頭像 發(fā)表于 09-26 17:21 ?8807次閱讀