STM32的GPIO端口的八种模式解析

目录

STM32的GPIO端口的八种模式解析

一、上拉输入模式

二、下拉输入模式

三、浮空输入模式

四、模拟输入模式

五、推挽输出模式

六、开漏输出模式

七、复用推挽输出模式

八、复用开漏输出模式


STM32的GPIO端口的八种模式解析

在学习STM32的过程中,GPIO端口是最为基础的外设接口。GPIO(general purpose input output),即通用输入输出端口。STM32芯片通过GPIO端口来与外部的各种设备进行通讯、实现控制或者采集来自外部设备输出的信号。
GPIO按照输入或者输出模式不同可以划分为以下八种模式:
输入模式四种:上拉输入模式下拉输入模式浮空输入模式模拟输入模式
输出模式四种:推挽输出模式开漏输出模式复用推挽输出模式复用开漏输出模式
这里以stm32f103系列芯片为例,依次介绍上面的每一种模式。下面的图是stm32f103中文参考手册里的GPIO端口的基本结构图。

一、上拉输入模式

1、如上图所示,GPIO工作在上拉输入模式时,上拉开关闭合,下拉开关断开,肖特基触发器打开。
2、此时,当IO引脚没有外部输入时,GPIO引脚默认会输入一个高电平。可以通过读取输入数据寄存器来读取到此时的IO电平。
3、需要注意的是,为了避免芯片内部的上下拉对外部输入的电平信号有太大的影响,在芯片内部的这两个上拉或者下拉都呈现一种弱上拉和弱下拉。这是由于内部的两个上下拉的电阻的阻值比较大(一般为几十千欧)。

二、下拉输入模式

1、如上图所示,GPIO工作在下拉输入模式时,上拉开关断开,下拉开关闭合,肖特基触发器打开。
2、此时,当IO引脚没有外部输入时,GPIO引脚默认会输入一个低电平。可以通过读取输入数据寄存器来读取到此时的IO电平。
3、需要注意的是,为了避免芯片内部的上下拉对外部输入的电平信号有太大的影响,在芯片内部的这两个上拉或者下拉都是一种弱上拉和弱下拉。这是由于内部的两个上下拉的电阻的阻值比较大(一般为几十千欧)。

三、浮空输入模式

1、如上图所示,GPIO工作在浮空输入模式时,上拉开关和下拉开关均断开,肖特基触发器打开。
2、此时,如果外部的IO引脚什么都不接(即悬空状态),可以知道GPIO引脚的电平将是一个不确定的状态。它将完全由外部的输入电平来确定。

四、模拟输入模式

1、对于模拟输入模式来说,肖特基触发器关闭,数据不在经过触发器模块。并且内部上下拉全部断开。
2、该模式一般是给芯片内部的ADC外设来使用的,用于采集来自芯片外部的模拟信号。如上图所示,来自外部的模拟信号直接进入片上ADC外设进行处理。
3、在模拟输入模式下可以知道MCU将无法通过读取输入数据寄存器获得IO引脚的电平变化状态。

五、推挽输出模式

1、如上图所示,GPIO在推挽输出模式下,方框中的输出控制模块相当于一个反相器。
2、在推挽输出模式下,输出驱动器中的P-MOS和N-MOS晶体管每次只有一个能正常工作。在介绍输出模式前我们先简单介绍下场效应管的结构及工作原理。

1、上图所示为输出驱动器中的P-MOS和N-MOS场效应晶体管的结构图,对于场效应晶体管来说,和普通三极管类似有栅极G,源极S和漏极D三个电极,它们分别对应三极管的基级B、发射极E和集电极C。N-MOS类似于NPN的三极管,P-MOS类似于PNP的三极管。
2、通俗来讲,对于N-MOS来说当栅极G的电压大于源极S的电压时,N-MOS可以导通工作,反之不能工作。
对于P-MOS来说当栅极G的电压小于源极S的电压时,P-MOS可以导通工作,反之不能工作。基本原理和三极管类似。
了解完场效应晶体管的工作原理后,我们可以知道,在推挽输出模式下:
1、如果写入逻辑1时,经过输出控制里的反相器后,将变为逻辑0,此时N-MOS不能导通而P-MOS可以导通。因此IO引脚被P-MOS拉高到VDD,因此GPIO引脚将输出一个高电平1。
2、如果写入逻辑0时,经过输出控制里的反相器后,将变为逻辑1,此时N-MOS可以导通而P-MOS不能导通。因此IO引脚被N-MOS拉低到低电平Vss,因此GPIO引脚将输出一个低电平0。
3、对于推挽输出模式来说,它最大的特点就是即便不使用外部上下拉电阻时也能正常输出高低电平。
4、在推挽输出模式下,肖特基触发器是打开的,MCU可以通过读取输入数据寄存器来读取IO引脚的电平状态。

六、开漏输出模式

在开漏输出模式下,P-MOS管会一直关闭(相当于不存在PMOS管),只有N-MOS管可以工作,同理:
1、如果写入逻辑1时,经过输出控制里的反相器后,将变为逻辑0,此时N-MOS不能导通,而P-MOS一直处于关闭状态,因此对于外部的IO引脚来说处于断路状态(相当于IO引脚连接了一个电阻值无穷大的电阻到地),IO状态呈高阻态。
2、如果写入逻辑0时,经过输出控制里的反相器后,将变为逻辑1,此时N-MOS可以导通,而P-MOS一直处于关闭状态。因此IO引脚被N-MOS拉低到低电平Vss,因此GPIO引脚将输出一个低电平0。
3、对于开漏输出来说,最大的特点是本身只能输出低电平而无法输出高电平,如果在开漏输出模式下想要IO引脚输出高电平则必须在IO引脚外部接入上拉电阻从而实现输出高电平。常用的I2C通讯就是采用这种模式。
4、在开漏模式下,肖特基触发器处于开启状态。MCU可以通过输入数据寄存器来获取IO端口的状态。通过这个特点,我们便可以实现IO端口的双向通讯:例如MCU要输出逻辑1,此时N-MOS管处于关闭状态,IO端口的电平将完全由外部电路决定。因此,MCU可以通过输入数据寄存器读到外部电路的信号,而不是它自己输出的逻辑1(外接上拉电阻的情况下)。这种方式在使用I2C总线进行主从机通讯时会用到。 
5、开漏输出还有一个特性就是可以很方便的调节输出的电平,因为输出电平完全由上拉电阻所连接的电源的电平决定。所以在需要进行电平转换的地方,非常适合使用开漏输出。
6、开漏输出模式还可以实现"线与"功能,所谓的"线与"指的是多个信号线直接连接在一起,只有当所有信号线全部为高电平时,合在一起的总线电平为高电平;只要有任意一个或者多个信号线为低电平,则总线电平就为低电平。当多个开漏输出的IO引脚连接在一起时,如果所有开漏输出IO都输出高电平,才能输出高电平。但凡有一个开漏输出IO输出低电平,所有的IO引脚电压都会被这一个拉低。

七、复用推挽输出模式

1、对于复用推挽输出来说,和普通的推挽输出类似,只不过复用模式下,一个IO引脚不在作为普通的GPIO使用而是转而作为其他外设功能引脚使用,IO引脚的状态是由对应的外设控制而不再是输出数据寄存器控制。
2、因此在复用模式下需要打开相应外设的时钟,否则IO引脚将无法正常输出。
3、另外在开复用推挽输出模式下,肖特基触发器是打开的,我们仍然可以通过输入数据寄存器来读取IO口的电平状态。

八、复用开漏输出模式

1、在复用开漏输出模式下,引脚的状态是由对应的外设控制,而不是输出数据寄存器。
2、另外在复用开漏模式下,肖特基触发器是打开的,我们可以通过输入数据寄存器来读取IO口的电平状态。
3、和开漏输出模式一样,在使用复用开漏输出模式时,同样的需要在IO引脚外部引入上拉电阻。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/819946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最全面的多语言同城送餐app开发流程解析

在当今数字化时代,随着移动互联网的普及和人们生活水平的提高,多语言同城送餐app开发成为各大企业争相布局的热门领域。本文将从专家的视角出发,为您详细解析最全面的多语言同城送餐app开发流程,助您在激烈的竞争中脱颖而出。 多…

使用colab进行yolov5小demo练习

输入一张动物的图片进行目标检测和分类 !pip install yolov5 import torch from PIL import Image from torchvision import transforms from yolov5.models.experimental import attempt_load from yolov5.utils.general import non_max_suppression# 加载YOLOv5模型 device …

婴儿专用洗衣机哪个牌子比较好?四款品质婴儿洗衣机暖心安利

科技让我们的生活变得方便了许多,比如,自从有了婴儿洗衣机之后,有些人就改变了宝宝衣物必须要手洗的想法,许多研究也证明,单靠手洗是无法将宝宝衣物彻底清洗干净的,一台专门的洗衣机就可以减轻我们的负担&a…

【MySQL笔记】InnoDB的插入缓存+非聚簇索引插入的离散性理解

文章目录 为什么需要插入缓存Insert Buffer非聚簇索引插入的离散性 Insert Buffer查看Insert Buffer信息 Insert Buffer的问题Change Buffer总结Reference 为什么需要插入缓存Insert Buffer 磁盘中的主键索引由于天然自增,无须磁盘的随机 I/O,只需不断追…

聚观早报 | 2024款蔚来ET7将发布;魏建军直播测试长城汽车

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 4月16日消息 2024款蔚来ET7将发布 魏建军直播测试长城汽车 Redmi Turbo 3开启销售 华为P系列正式升级为华为Pura…

数据采集1688官方API商品数据采集1688官方商品详情数据返回|电商API接口数据采集

随着全球经济一体化和电子商务的快速发展,网络购物的需求日益增加。不断涌现的电商企业使得行业的竞争情况愈演愈烈。在这种情况下,企业不仅要加大经营力度,还要在自己的基础设施和技术上持续投入,才能更好的适应市场和消费习惯。…

开春运动正当时,谨防这些运动损伤,别让“健身”变“伤身”

春季运动正当时 运动损伤需警惕 科学运动 快乐加倍 天气回升,春暖清明 户外运动爱好者纷纷复出 但要注意的是 春季是运动受伤的高发季 因为经过寒冷冬季的“运动低潮期”,身体各器官的季节活跃性较低,运动方式和强度不合适很容易导致身体…

C++(运算符重载+赋值拷贝函数+日期类的书写)

目录 运算符重载运算赋值重载和运算赋重载前置和后置<,<,>,>,,!运算符重载日期类的实现<<流插入和>>流提取的运算符重载总结 运算符重载 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函数&#xff0c;也具有其 返回…

(最新)华为 2024 届实习招聘-硬件通⽤/单板开发——第十一套和十二套

&#xff08;最新&#xff09;华为 2024 届实习招聘-硬件通⽤/单板开发——第十一套和十二套 部分题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共十套&#xff09;获取&#xff…

【软考】设计模式之命令模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 优缺点5.1 优点5.2 缺点 6. 适用性7.java示例 1. 说明 1.命令模式&#xff08;Command Pattern&#xff09;是一种数据驱动的设计模式。2.属于行为型模式。3.请求以命令的形式被封装在对象中&#xff0c;并传递给调用对象。4.调用对…

Win10 启动时数字键盘不亮怎么办?

首先&#xff0c;按住winr 运行 windows 运行框&#xff0c;输入regedit 打开注册表编辑器 1.查找current_user选项下的Control Panel 中的keyboard 点击八initialkeyboard 值设置成2&#xff0c;如图所示即可。2.选择hkey_user 中的。default 下的control Panel 选项下的keyb…

工作中用Redis最多的10种场景

作者&#xff1a;苏三说技术 链接&#xff1a;https://juejin.cn/post/7325132133168971813 前言 Redis是一种非常优秀的基于KV的键值对缓存数据库&#xff0c;有非常不错的性能和稳定性&#xff0c;无论是在工作中&#xff0c;还是在面试中&#xff0c;都经常会出现。因此&am…

UC网盘、迅雷网盘拉新如何做?热门拉新项目盘点

迅雷网盘拉新项目&#xff1a; ​关键词链接 双重拉新模式&#xff1a;可以通过链接、关键词两种方式进行推广&#xff0c;匹配不同拉新场景。 网盘功能齐全&#xff1a;作为老牌网盘产品&#xff0c;功能强大&#xff0c;使用体验好&#xff0c;支持不同格式文件。 不限推广…

【七 (2)FineBI FCP模拟试卷-平台新增用户留存分析】

目录 文章导航一、字段解释1、用户平台登录信息表格2、用户平台激活信息表格 二、需求三、操作步骤1、建立用户平台登录信息表格和用户平台激活信息表格的关联关系2、将用户平台激活信息表格的激活日期添加到用户平台登录信息表格3、新增公式列&#xff0c;计算激活时间和登录时…

OpenHarmony轻量系统开发【5】驱动之GPIO点灯

5.1点灯例程源码 先看最简单得LED灯闪烁操作 源码结构如下&#xff1a; 第一个BUILD.gn文件内容&#xff1a; static_library("led_demo") {sources ["led_demo.c"]include_dirs ["//utils/native/lite/include","//kernel/liteos_m/c…

工业物联网让“制造”变成“智造”!——青创智通

工业物联网解决方案-工业IOT-青创智通 随着科技的不断进步和工业的持续发展&#xff0c;物联网&#xff08;IoT&#xff09;技术的出现为制造业带来了前所未有的变革。工业物联网&#xff08;IIoT&#xff09;作为物联网技术在工业领域的应用&#xff0c;正在逐渐改变传统的制…

@Transactional使用中的三类坑

我们知道事务有声明式事务和编程式事务两种&#xff0c;编程式事务代码侵入较高&#xff0c;声明式事务侵入较低&#xff0c;在项目中常有使用&#xff0c;然而&#xff0c;不正确的使用声明式事务&#xff0c;可能让代码未能按照我们的预期执行。 一、事务可能没有生效 Tran…

2024-4.python4基本数据类型

基本数据类型 引言 提问 前面我们说过&#xff0c;计算机的本质作用就是用来存储和运算二进制的数据。但是在实际应用中&#xff0c;我们看到计算机存储或者运算的数据并非只有二进制的数据&#xff0c;例如使用Excel可以对一些数值数据、文本数据或者图像数据进行不同形式的处…

从iPhone恢复已删除照片的最佳软件

本文分享了从iPhone恢复已删除照片的最佳软件。如果您正在寻找如何从iPhone恢复已删除的照片&#xff0c;请查看这篇文章。 为什么您需要软件从iPhone恢复已删除的照片&#xff1f; 没有什么比丢失iPhone上的重要数据更痛苦的了&#xff0c;尤其是一些具有珍贵回忆的照片。有时…

公司文件加密软件有监视功能吗?

公司文件加密软件不仅提供了强大的文件加密能力&#xff0c;还具备了监视功能&#xff0c;确保文件在使用过程中的安全性。华企盾DSC数据防泄密系统中的监控功能体现在以下几个方面&#xff1a; 加密文件操作日志&#xff1a;记录所有加密文件的申请、审批、扫描加解密、自动备…