0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32 GPIO实现与外部通讯、控制以及数据采集方案介绍

454398 来源:博客园 作者:谢嘉敏 2020-10-19 12:13 次阅读

GPIO是什么

GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
STM32芯片的GPIO被分成很多组,每组有16个引脚,如型号为STM32F103ZET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOG共7组GPIO,芯片一共144个引脚,其中GPIO就占了一大部分,所有的GPlO引脚都有基本的输入输出功能。
最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,那就可以控制LED灯的亮灭,引脚接入到继电器或三极管,那就可以通过继电器或三极管控制外部大功率电路的通断。
最基本的输入功能是检测外部输入电平,如把GPIO引脚连接到按键,通过电平高低区分按键是否被按下。

点亮PB0 LED:

GPIO功能框图

每个GPI/O端口有两个32位配置寄存器(GPIOX-CRL,GPIOx-CRH),两个32位数据寄存器(GPIOxIDR和GPIOX-ODR),一个32位置位/复位寄存器(GPIOx-BSRR),一个16位复位寄存器(GPIOx-BRR)和一个32位锁定寄存器(GPIOX-LCKR).
根据数据手册中列出的每个I/O端口的特定硬件特征,GPIO端口的每个位可以由软件分别配置成多种模式:

输入浮空

输入上拉

输入下拉

模拟输入

开漏输出

推挽式输出

推挽式复用功能

开漏复用功能

每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问),GPIOx-BSRR和GPIOxBRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改访间之间产生IRQ时不会发生危险。

图上除了I/O引脚我们能在芯片外部看到,其余部分都在芯片内部

1:保护模块:当I/O引脚输入正电压大于VDD,电流就会流向VDD不会流进芯片内部,从而保护电路(远大于VDD时二极管会烧坏,因此不能将引脚直接接电极,要用电机驱动),反之输入负电压超过VSS时,电流就会从VSS往外流。

2:推挽、开漏或关闭:用以下两个寄存器配置,每4个位控制一个GPIO,配置输入输出的各种模式(右上的上拉下拉开关也是用这个寄存器设置的:10)。

简化电路图:

当INT输入为1,取反后为0,上方的Ug

当INT输入为0,取反后为1,上方的Ug=Us,VDD3.3V电流流向Ug,VDD与OUT断开;下方的Ug>Us,GND与OUT导通,OUT电流流向GND。

可以输出高低电平,用于连接数字器件,高电平由VDD决定,低电平由VSS决定。

推挽结构指两个三极管受两路互补的信号控制,总是在一个导通的时候另外一个截止,优点开关效率效率高,电流大,驱动能力强。

输出高电平时,电流输出到负载,叫灌电流,可以理解成推,输出低电平时,负载电流流向芯片,叫拉电流,即挽。

开漏输出一般只能输出低电平,想输出高电平要另外加上拉电阻,而且此时NMOS处于截止状态(当INT为1时)

输出高电平时,VDD如果是3.3V,OUT就输出3.3V,VDD如果是5V,OUT就输出5V

只能输出低电平,不能输出高电平。

如果要输出高电平,则需要外接上拉。

开漏输出具有"线与"功能,一个为低,全部为低,多用于I2C和SMBUS总线。

3:输出数据寄存器:用以下寄存器配置,可以直接设置ODR,也可以先设置BSRR,最后ODR会被更改。

(右上的上拉下拉开关也是用这个BSRR寄存器设置的)

4:复用功能输出:用外设输出时(例如串口),第3部分就没用了。

5:输入数据寄存器:读出引脚数据

6:复用功能输入:外设引脚输入。

7:模拟输入:ADC采集,不经过肖特基触发器

GPIO输出初始化顺序

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

点亮B0 LED


编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23277

    浏览量

    660842
  • 三极管
    +关注

    关注

    142

    文章

    3611

    浏览量

    121918
  • 继电器
    +关注

    关注

    132

    文章

    5334

    浏览量

    148890
  • GPIO
    +关注

    关注

    16

    文章

    1204

    浏览量

    52090
收藏 人收藏

    评论

    相关推荐

    温度变送器(传感器)IO数据采集方案

    温度变送器数据采集方案主要涵盖以下几个方面: 一、数据采集方式 温度变送器的数据采集方式一般有两种: ‌ 直接采集法 ‌:这种
    的头像 发表于 12-17 09:42 109次阅读

    stm32 GPIO中断配置教程

    理解GPIO中断 在STM32中,GPIO中断允许微控制器在引脚状态变化时(如从低到高或从高到低)立即响应,而无需不断轮询引脚状态。这对于处理外部
    的头像 发表于 11-19 15:53 778次阅读

    STM32 GPIO的八种工作模式

    GPIO (general purpose input output)是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与
    的头像 发表于 11-06 09:40 600次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b>的八种工作模式

    PLC数据采集解决方案

    一、背景及需求分析 随着工业自动化程度的不断提升,PLC作为工业控制系统的核心部件,其数据采集与监控的准确性和实时性变得尤为重要。然而,传统的PLC控制系统往往存在数据孤岛、效率低下、
    的头像 发表于 10-31 15:58 231次阅读
    PLC<b class='flag-5'>数据采集解决方案</b>

    和利时PLC数据采集网关有什么功能

    和利时PLC数据采集网关是一款专为工业自动化领域设计的设备通讯终端产品,具备多种功能,为工业设备的远程监控、控制和维护提供了强有力的支持。以下是和利时PLC数据采集网关的主要功能
    的头像 发表于 10-30 13:45 193次阅读
    和利时PLC<b class='flag-5'>数据采集</b>网关有什么功能

    GPIO静电放电防护方案

    GPIO静电放电防护方案 方案简介 GPIO的全称是General Purpose Input Output (通用输入/输出端口),简称为GPIO
    的头像 发表于 09-19 17:02 352次阅读
    <b class='flag-5'>GPIO</b>静电放电防护<b class='flag-5'>方案</b>

    SCADA数据采集网关是什么?有什么功能?

    数据采集网关不仅负责实时数据采集,还参与数据的处理、监控和控制,是实现工业自动化和提高生产效率
    的头像 发表于 09-10 14:08 407次阅读
    SCADA<b class='flag-5'>数据采集</b>网关是什么?有什么功能?

    CKS32F107xx系列MCU的GPIO内部硬件结构和工作模式

    GPIO是通用输入输出端口的简称,也是CKS32可控制的引脚,CKS32芯片的GPIO引脚与外部设备连接起来,从而实现
    的头像 发表于 07-22 09:23 701次阅读
    CKS32F107xx系列MCU的<b class='flag-5'>GPIO</b>内部硬件结构和工作模式

    PLC采集网关如何实现多品牌PLC数据采集

    。特别是当企业使用多个品牌的PLC设备时,如何实现多品牌PLC数据采集,更是一个亟待解决的问题。本文将详细介绍PLC采集网关如何实现多品牌P
    的头像 发表于 07-11 17:08 460次阅读

    NI数据采集板卡如何连接使用?

    NI(National Instruments)数据采集板卡是一种常用的工业级数据采集设备,广泛应用于科学研究、工程测试、自动化控制等领域。本文将介绍如何连接产品并使用NI
    的头像 发表于 07-11 10:05 932次阅读

    工控系统PLC、DCS、SCADA数据采集如何实现

    在现代工业自动化领域中,数据采集控制系统扮演着至关重要的角色。其中,可编程逻辑控制器PLC、分布式控制系统DCS以及监控与
    的头像 发表于 06-29 11:20 625次阅读

    工控数据采集平台是什么?

    各种信息,平台通过对这些数据的管理,帮助企业实现生产过程的优化、设备维护、质量控制以及能源管理等多种功能。   工控数据采集平台的主要功能和
    的头像 发表于 06-14 15:29 418次阅读

    网关数据采集解决方案

    随着物联网技术的快速发展,数据采集已成为企业运营、管理和决策的重要支撑。网关作为连接不同网络的关键设备,其在数据采集过程中发挥着至关重要的作用。本文将详细介绍一种网关数据采集解决方案
    的头像 发表于 03-08 16:05 622次阅读
    网关<b class='flag-5'>数据采集解决方案</b>

    物通博联数据采集网关支持电流电压模拟量数字量485数据采集

    随着物联网技术的不断发展,越来越多的设备需要实现远程监控和控制。在工业自动化领域,数据采集实现这一目标的关键环节,随着工业自动化水平的不断提升,对各种类型的
    的头像 发表于 02-02 15:46 386次阅读
    物通博联<b class='flag-5'>数据采集</b>网关支持电流电压模拟量数字量485<b class='flag-5'>数据采集</b>

    基于物通博联工业数据采集网关的工厂数据采集方案

    。因此,需要一种高效、稳定、可靠的工厂数据采集方案,来实现对工厂生产过程的实时监控和管理。 物通博联提供基于数据采集网关的工厂数据采集
    的头像 发表于 01-26 15:14 473次阅读
    基于物通博联工业<b class='flag-5'>数据采集</b>网关的工厂<b class='flag-5'>数据采集</b><b class='flag-5'>方案</b>