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

news2025/2/7 10:49:30

目录

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.coloradmin.cn/o/1598413.html

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

相关文章

惨痛教训:我的专业赢得了辩论,却用情商丢掉了客户。

某一年,我给某市级部门做了一个3D展示的系统,时间紧,任务重,也是如期完成了。最后到市里去评审的时候,现场来了11个副主任,大家你一言我一语的对系统提出意见和建议。 那个时候我是年轻气盛,知道…

CPLD可运行的最高频率是多少

CPLD可运行的最高频率是多少 AG32 内置CPLD的可运行最高频率 AG32 内置CPLD的可运行最高频率 AG32 MCU 的运行最高频率是248M。而CPLD中没有标准的最高频率。 最大能跑多少MHz,取决于cpld 里的设计。 如果是逻辑电路,则不存在时钟的概念。 如果是时序电路…

无线测温技术在高炉炉壳温度检测中的应用/无线测温监控系统

安科瑞薛瑶瑶18701709087 摘要:应用方便灵活的无线测温和热成像技术对高炉炉壳进行检测,利用热成像进行检测,发现了温度异常区域后对关注部位进行点的检测,预防炉壳的烧穿,对温度数据采集及存储,通过查看历史趋势来对…

【Linux】进程的优先级环境变量

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 进程的优先级2.1 什么是优先级2.2 为什么要有优先级2.3 优先级的查看方式2.4 对优先级调整 3. 命令行参数4. 环境变量4.1 环境变量与配置文件4.1.1 环境变量初步介绍4.1.2 配置文件 4.2 更多环境变量4.3 整…

HTTPS 加密解密大致流程

HTTPS简介 在我们开始配置之前,让我们先了解一下HTTPS和它的重要性。 为什么选择HTTPS? 加密传输:通过SSL/TLS协议,确保数据在传输过程中不被窃听。认证身份:确保客户端与预期的服务器通信,防止中间人攻…

密码学 | 椭圆曲线数字签名方法 ECDSA(下)

目录 10 ECDSA 算法 11 创建签名 12 验证签名 13 ECDSA 的安全性 14 随机 k 值的重要性 15 结语 ⚠️ 原文:Understanding How ECDSA Protects Your Data. ⚠️ 写在前面:本文属于搬运博客,自己留着学习。同时,经过几…

00 【哈工大_操作系统】Bochs 汇编级调试方法及指令

本文将介绍一下哈工大李治军老师《操作系统》课程在完成Lab时所使用到的 Bochs 调试工具的使用方法。这是一款汇编级调试工具,打开调试模式非常简单,只需在终端下输入如下指令: 1、bochs 调试基本指令大全 功能指令举例在某物理地址设置断点…

LED电子显示屏的性能要求

LED电子显示屏作为一种重要的信息传播媒介,在各行各业得到广泛应用。然而,其性能要求直接影响到其稳定运行和有效传播信息的效果。以下是LED电子显示屏的性能要求概述: 1. 发光体可靠性 LED电子显示屏的发光体质量必须可靠稳定,保…

云安全与网络安全:有什么区别?

云计算已经存在了一段时间,但某些术语的正确含义仍然存在混乱。一个例子是区分云安全与网络安全。 首先,让我们看一下网络安全一词 ,以了解它的含义。然后,我们将将该术语与云安全进行比较,以了解两者在几个关键领域的…

STM32笔记---CAN采样点设置和报错

STM32笔记---CAN采样点设置和报错 采样点设置再同步补偿宽度(SJW)设置 报错分析CAN中断使能寄存器CAN错误状态寄存器 采样点设置 以前配置CAN参数的BS1和BS2参数时认为总线波特率符合要求就可以了,其实同一个波特率可能对应多组参数设置的情…

vue3 el-table无表头

需要实现的样式 父组件 <template><div><!-- 表格组件 无表头 --><Table :label"tableData.label" :data"tableData.data" :querydata"tableData.querydata" :queryTitle"tableData.title"><template #o…

矩阵起源招聘进行时,寻找发光的你~

推荐有礼&#xff01;添加MO小助理 MO定制书包轻松GET~

Linux查看进程

Linux查看进程 引言查看进程1.快速查看运行中的进程列表2. 查看所有用户的所有进程3.显示所有进程的完整格式。4.动态显示进程的信息5.根据进程名查找进程ID6.以树状图的方式显示进程间的父子关系7.查找指定名字的进程id 引言 Linux查看进程在日常的使用中比较常见&#xff0c…

Sony Camera Remote SDK在Windows上的使用

Sony官方提供了相机遥控软件开发包&#xff0c;允许用户自行开发应用软件&#xff0c;实现对相机的远程控制&#xff0c;包括拍摄、监看和文件传输等。截至目前最新的版本是2024.4.12发布的1.12.00版本&#xff0c;下载链接如下&#xff1a;Camera Remote SDK | LICENSE AGREEM…

直流充电桩与交流充电桩有哪些区别,如何选最靠谱?

在当今快速发展的电动汽车市场&#xff0c;正确选择充电桩成为了车主们面临的重要问题之一。直流充电桩与交流充电桩区到底有什么区别&#xff1f;哪些方面不同&#xff1f;分别适用场景是什么&#xff1f;不同场景应该怎么选&#xff1f;本文一文为您详解。 一、直流充电桩与交…

wps使用Latex编辑公式没有Latex formula

wps使用Latex编辑公式没有Latex formula 1. 下载CTEX2. 下载LaTeXEE3. 配置Miktex4. 配置latexee5. 用管理员权限运行latexeqedit.exe6. wps插入latex公式 1. 下载CTEX 下载CTEX网址&#xff0c;我下载的下图这个&#xff0c;下载完了之后运行exe文件安装ctex。 2. 下载LaTe…

雷达智能名片小程序源码系统 带完整的安装代码包以及搭建教程

在数字化高速发展的今天&#xff0c;名片作为商务交流中的一张“金名片”&#xff0c;其形式与功能也在不断地迭代升级。雷达智能名片小程序源码系统应运而生&#xff0c;为企业和个人提供了一个全新的、智能化的名片展示与互动平台。本文将对雷达智能名片小程序源码系统的开发…

初级软件测试常见问题

1.JMeter &#xff08;1&#xff09;在http请求的时候&#xff0c;消息体数据中的数据需要用{}和“”标记起来&#xff0c;变量要用${}括起来。 &#xff08;2&#xff09;在响应断言的时候&#xff0c;要根据测试模式输出的内容来改变测试字段&#xff0c;假如输出错误可以把…

谷歌浏览器的开发者插件vue-devtools

在这里我留下一个git地址用来下载插件包&#xff0c;首先在自己喜欢的位置创建一个新的文件夹&#xff0c;起一个自己喜欢的文件夹名字&#xff0c;下载到包后&#xff0c;然后点进文件夹里下载依赖&#xff0c;npm install,下载后如下面这个样子 git clone https://gitee.com…

【Leetcode每日一题】 动态规划 - 最小路径和(难度⭐⭐)(58)

1. 题目解析 题目链接&#xff1a;64. 最小路径和 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 算法思路梳理&#xff1a; 一、状态表示 在路径类问题中&#xff0c;状态表示通常有两种形式&#xff1a; 从 [i,…