STM32 GPIO工作原理详解

这篇具有很好参考价值的文章主要介绍了STM32 GPIO工作原理详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

STM32 GPIO介绍

1.STM32引脚说明

GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。

以STM32F103ZET6芯片为例子,该芯片共有144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。

STM32的大部分引脚除了当GPIO使用之外,还可以复用位外设功能引脚(比如串口),这部分在STM32端口复用和重映射(AFIO辅助功能时钟) 中有详细的介绍。

2.GPIO基本结构

每个GPIO内部都有这样的一个电路结构,这个结构在本文下面会具体介绍。
STM32 GPIO工作原理详解,理论知识,stm32,嵌入式硬件,单片机

电路图说明

保护二极管:IO引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输入。当引脚电压高于VDD时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。但是尽管如此,还是不能直接外接大功率器件,须加大功率及隔离电路驱动,防止烧坏芯片或者外接器件无法正常工作。

P-MOS管和N-MOS管:由P-MOS管和N-MOS管组成的单元电路使得GPIO具有“推挽输出”和“开漏输出”的模式。这里的电路会在下面很详细地分析到。

TTL肖特基触发器:信号经过触发器后,模拟信号转化为0和1的数字信号。但是,当GPIO引脚作为ADC采集电压的输入通道时,用其“模拟输入”功能,此时信号不再经过触发器进行TTL电平转换。ADC外设要采集到的原始的模拟信号。

这里需要注意的是,在查看《STM32中文参考手册V10》中的GPIO的表格时,会看到有“FT”一列,这代表着这个GPIO口时兼容3.3V和5V的;如果没有标注“FT”,就代表着不兼容5V。

3.STM32的GPIO工作方式

GPIO支持4种输入模式:

  • 浮空输入(GPIO_Mode_IN_FLOATING)
  • 上拉输入(GPIO_Mode_IPU)
  • 下拉输入(GPIO_Mode_IPD)
  • 模拟输入(GPIO_Mode_AIN)

GPIO支持4种输出模式:

  • 开漏输出(GPIO_Mode_Out_OD)
  • 开漏复用输出(GPIO_Mode_AF_OD)
  • 推挽输出(GPIO_Mode_Out_PP)
  • 推挽复用输出(GPIO_Mode_AF_PP)

同时,GPIO还支持三种最大翻转速度(2MHz、10MHz、50MHz)。
每个I/O口可以自由编程,但I/O口寄存器必须按32位字被访问。

浮空输入模式
  • 浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。也就是说,I/O的电平状态是不确定的,完全由外部输入决定;如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。
    STM32 GPIO工作原理详解,理论知识,stm32,嵌入式硬件,单片机
上拉输入模式
  • 上拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在高电平;并且在I/O端口输入为低电平的时候,输入端的电平也还是低电平。
    STM32 GPIO工作原理详解,理论知识,stm32,嵌入式硬件,单片机
下拉输入模式
  • 下拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在低电平;并且在I/O端口输入为高电平的时候,输入端的电平也还是高电平
    STM32 GPIO工作原理详解,理论知识,stm32,嵌入式硬件,单片机
模拟输入模式
  • 模拟输入模式下,I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到片上外设模块,比如ADC模块等等。
    STM32 GPIO工作原理详解,理论知识,stm32,嵌入式硬件,单片机
开漏输出模式
  • 开漏输出模式下,通过设置位设置/清除寄存器或者输出数据寄存器的值,途经N-MOS管,最终输出到I/O端口。这里要注意N-MOS管,当设置输出的值为高电平的时候,N-MOS管处于关闭状态,此时I/O端口的电平就不会由输出的高低电平决定,而是由I/O端口外部的上拉或者下拉决定;当设置输出的值为低电平的时候,N-MOS管处于开启状态,此时I/O端口的电平就是低电平。同时,I/O端口的电平也可以通过输入电路进行读取;注意,I/O端口的电平不一定是输出的电平。
    STM32 GPIO工作原理详解,理论知识,stm32,嵌入式硬件,单片机
开漏复用输出模式
  • 开漏复用输出模式,与开漏输出模式很是类似。只是输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的。
    STM32 GPIO工作原理详解,理论知识,stm32,嵌入式硬件,单片机

什么是推挽结构和推挽电路?

  • 推挽结构一般是指两个参数相同的三极管或MOS管分别受两互补信号的控制,总是在一个三极管或MOS管导通的时候另一个截止。高低电平由输出电平决定。

  • 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务。电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

开漏输出和推挽输出的区别?

  • 开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极。适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内);

  • 推挽输出:可以输出强高、低电平,连接数字器件。

  • 关于推挽输出和开漏输出,最后用一幅最简单的图形来概括:

STM32 GPIO工作原理详解,理论知识,stm32,嵌入式硬件,单片机文章来源地址https://www.toymoban.com/news/detail-832350.html

  • 该图中左边的便是推挽输出模式,其中比较器输出高电平时下面的PNP三极管截止,而上面NPN三极管导通,输出电平VS+;当比较器输出低电平时则恰恰相反,PNP三极管导通,输出和地相连,为低电平。
  • 右边的则可以理解为开漏输出形式,需要接上拉。

4.在STM32中选用怎样选择I/O模式?

  • 浮空输入(GPIO_Mode_IN_FLOATING) ——浮空输入,可以做KEY识别,RX1
  • 上拉输入(GPIO_Mode_IPU)——IO内部上拉电阻输入
  • 下拉输入(GPIO_Mode_IPD)—— IO内部下拉电阻输入
  • 模拟输入(GPIO_Mode_AIN) ——应用ADC模拟输入,或者低功耗下省电
  • 开漏输出(GPIO_Mode_Out_OD)——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
  • 推挽输出(GPIO_Mode_Out_PP) ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
  • 推挽复用输出(GPIO_Mode_AF_PP) ——片内外设功能(I2C的SCL、SDA)
  • 开漏复用输出(GPIO_Mode_AF_OD)——片内外设功能(TX1、MOSI、MISO、SCK、SS)

到了这里,关于STM32 GPIO工作原理详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【明解STM32】中断系统理论基础知识篇之中断基本原理及NVIC

    目录 一、前言 二、基本原理概述 1、中断的作用 2、中断和异常 3、NVIC中断控制器 4、中断的分类 三、中断管理机制 1、中断向量 2、中断优先级 3、中断嵌套 四、中断处理流程 五、总结         中断是什么?举个例子来说,当我们正在工作时,突然电话响了,这时你会把

    2024年02月05日
    浏览(47)
  • 【明解STM32】中断系统理论基础知识篇之中断寄存器功能原理

    目录 一、前言 二、寄存器概述 三、NVIC寄存器组 四、SCB寄存器组 五、中断屏蔽寄存器组 六、总结         在之前的STM32的中断系统理论基础知识之基本原理及NVIC中,分别中断的基本原理,中断的管理机制和中断的处理流程进行了较为详细的论述,读者通过全篇的阅读了

    2024年02月16日
    浏览(47)
  • STM32-GPIO工作方式

    GPIO端口的每个位可以由软件分别配置成八种输入输出模式。 下图黄色区域是该种模式电路,此时上拉和下拉电阻的开关打开,施密特触发器打开。 在I/O口写入电平-进入输入驱动器-通过施密特触发器-进入输入数据寄存器,CPU读出  输入浮空一般多用于外部按键输入。 在输入

    2024年01月22日
    浏览(35)
  • 【STM32 CubeMX】GPIO的工作模式

    在嵌入式系统开发中,对于STM32微控制器的GPIO(General Purpose Input/Output)引脚的配置和使用是至关重要的。GPIO引脚可以通过STM32 CubeMX工具来进行灵活的配置,以满足各种应用需求。了解GPIO的工作模式对于正确配置和使用这些引脚至关重要。 GPIO是General-purpose and alternate-functio

    2024年02月22日
    浏览(36)
  • 嵌入式-Stm32-江科大基于标准库的GPIO的八种模式

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月20日
    浏览(51)
  • 嵌入式-Stm32-江科大基于标准库的GPIO通用输入输出口

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月17日
    浏览(62)
  • 嵌入式-Stm32-江科大基于标准库的GPIO4个小实验

    核心:本文共4个小实验: 第一个:LED灯闪烁 第二个:LED流水灯 第三个:按键控制LED 第四个:光敏传感器控制蜂鸣器 1.1 LED、蜂鸣器、面包板 LED:发光二极管,正向通电点亮,反向通电不亮。 有源蜂鸣器(本实验):内部自带振荡源,将正负极接上直流电压即可持续发声,频

    2024年01月21日
    浏览(63)
  • 小白入门STM32(2)---控制SG90舵机---基础工作原理详解

    本人一枚软件编程人员,有一定C语言基础,目前自学STM32单片机,写下此篇一巩固所学二交流分享。 按照惯例,先介绍理论再实战上手,穿插习题,最后给出我的愚见。 SG90属于一种舵机,最适合小白入门,可直接由单片机驱动。另外,单片机中给我们封装了很多东西,所以

    2023年04月10日
    浏览(44)
  • STM32学习记录——GPIO的8种工作模式

    目录 前言 一、GPIO的介绍 二、GPIO的八种工作模式 三、四种输入模式介绍及主要应用 GPIO_Mode_AIN   模拟输入 GPIO_Mode_IN_FLOATING   浮空输入 GPIO_Mode_IPD   下拉输入 GPIO_Mode_IPU  上拉输入 四、四种输出模式介绍及主要应用 GPIO_Mode_Out_OD   开漏输出 GPIO_Mode_Out_PP   推挽输出 GPIO

    2024年02月17日
    浏览(43)
  • STM32F103——GPIO八种工作模式

    目录 1、GPIO 基本结构分析 2、GPIO 八种工作模式 2.1 输入浮空  2.2 输入上拉 2.3 输入下拉 2.4 模拟功能 2.5 开漏输出 2.6 开漏式复用功能 2.7 推挽输出 2.8 推挽式复用功能 3、GPIO 八种工作模式特点及应用  STM32F103的 GPIO 工作有八种模式,但是具体这些模式是怎么实现的?下面我们

    2024年02月14日
    浏览(135)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包