STM32八种I/O口模式

news2024/11/28 22:36:20

STM32八种I/O口模式

文章目录

  • STM32八种I/O口模式
  • 前言
  • 一、stm32八种I/O类型
  • 二、区别
    • 1.模拟输入
    • 2.浮空输入
    • 3.上拉输入
    • 4.下拉输入
    • 5.推挽输出
    • 6.开漏输出
    • 7.复用推挽输出
    • 8.复用推挽输出
  • 总结


前言

作为两年嵌入式软件攻城狮,还没仔细去理解过STM32的GPIO的八种使用模式,俗话说嵌入式软硬件不分家,软件不懂硬件,出了问题有时候只能“抓虾”,今天有点时间,特此总结一下学过的有关STM32的GPIO模式的硬件知识。


一、stm32八种I/O类型

GPIO(general porpose intputoutput):通用输入输出端口的简称,在STM32中,对于 GPIO 的配置种类有以下 8 种之多,接触最多的就是开漏输出、上拉输入、推挽输出

类型模式
GPIO_Mode_AIN模拟输入
GPIO_Mode_IN_FLOATING浮空输入
GPIO_Mode_IPD下拉输入
GPIO_Mode_IPU上拉输入
GPIO_Mode_Out_OD开漏输出
GPIO_Mode_Out_PP推挽输出
GPIO_Mode_AF_OD复用开漏输出
GPIO_Mode_AF_PP复用推挽输出

二、区别

1.模拟输入

模拟输入顾名思义就是对模拟信号的读取IO,关于什么是模拟信号此处不再赘述,在STM32给出的5 V 容忍 I/O 端口位的基本结构图中,模拟输入的路径如图红线所示。例如在单片机使用用AD采集电压信号时候,需将IO配置为模拟输入模式,为让单片机真实的读取到电压信号,该模式下既不开启上下拉,也不经过施密特触发器。在这里插入图片描述

2.浮空输入

浮空输入从字面意思理解就是IO口是悬浮滞空状态的,的在STM32给出的5 V 容忍 I/O 端口位的基本结构图中,浮空输入的路径如图红线所示需要走的路径如图所示。VDD和VSS两个开关同时断开,此时没有上拉和下拉的情况,我理解为浮空输入状态下, IO 的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。
优势:此模式下,IO电平会完全取决于外部电路而与内部电路无关,所以常用作对开关按键的读取。
在这里插入图片描述
注意:上拉和下拉电阻电路的开关在实际应用中一般使用MOS管来代替开关来提到。再往前面走,就是走到了TTL施密特触发器这一个部分。我们知道,由于电源的特性,或者是由于外部开关输入的特性,输入的数字信号,极有可能会出现脉冲等噪声的影响,为了让我们的波形更好看,或者信号更加清晰,所以就设置了TTL施密特触发器这个东西。经过之后,我们就会把这个数字信息存储在输入数据寄存器中。这样我们就读到了IO过来的数字信号

3.上拉输入

上拉输入首先是对一个数字信号的读取,其次就是在IO口增加有上拉电阻,在STM32给出的5 V 容忍 I/O 端口位的基本结构图中,上拉输入的路径如图红线所示,此时右侧绿框中上拉电阻接入,红框中下拉电阻断开。
IO此时的电平就是VDD的电平,此时读到的电平为高电平。如果输入了一个高电平,VDD和左侧I/O引脚的电势差为0,I/O口输入或不输入高电平,读取到的电平数据都是高电平,所以不太容易确定有没有电平输入。输入一个低电平时,此时左侧I/O引脚的电平的电平就会变成低电平与VDD形成了电势差,因为有上拉电阻所以不会出现大电流,但此时可以读取到一个低电平。
所以在上拉输入,容易读取低电平但不容易读取高电平
在这里插入图片描述
注意:上拉输入的好处就是输入的电平不会上下浮动而导致输入信号不稳定,在没有信号输入的情况下可以稳定在高电平。

4.下拉输入

下拉输入与上拉输入原理一样,只不过带的是下拉电阻,在STM32给出的5 V 容忍 I/O 端口位的基本结构图中,下拉输入的路径如图红线所示,此时右侧绿框中下拉电阻接入,红框中上拉电阻断开。
IO此时的电平就是VSS的电平,此时读到的电平为低电平。如果输入了一个低电平,VSS和左侧I/O引脚的电势差为0,I/O口输入或不输入低电平,读取到的电平数据都是低电平,到此可以知道和上拉输入是截然相反的。所以在下拉输入,容易读取高电平但不容易读取低电平。唯一的好处就是使得把输入钳在一个明确的低电平,电平信号不会浮动而导致输入信号不稳定。
在这里插入图片描述

5.推挽输出

推挽输出就是利用如图两个不同的MOS管(P-MOS和N-MOS)来实现输出电平,通过PMOS和NMOS通断组合会出现两种情况:
N-MOS导通,P-MOS截至,此时IO口接通在VSS(如图绿色路径),此时输出的是低电平,俗称“灌电流”。
N-MOS截至,P-MOS导通,此时IO口接通在VDD(如图红色路径),此时输出的是高电平,俗称“拉电流”。
另外两种情况暂且不论,感兴趣可参见博文:推挽输出与开漏输出
因为有VDD和VSS,所以输出具有电平反转效率高,电流驱动能力强。

在这里插入图片描述

6.开漏输出

所谓的开漏,如图,我们假设没有PMOS的存在,此时类似于我们直接将IO接到N-MOS的漏极,此时N-MOS的通断有两种状态
1.NMOS导通,相当于外接到VSS,为低电平
2.NMOS截至,类似接无穷大电阻,为高阻态,
这两种情况下在外部加一个上拉电阻(绿框),外部IO就会出现两种情况:
1.NMOS导通,相当上拉电阻一端外接到VSS,外部IO被短路,输出为低电平
2.NMOS截至,相当于将短路部分断开,上拉电阻将外部IO拉高,输出高电平
特点:IO电压不再由内部VDD决定,而是由上拉电阻决定,可以通过上拉电阻部分给定想要的电压,并且可以进行“线与”

更多的开漏和推挽相关的知识参见博文:推挽输出与开漏输出

在这里插入图片描述

7.复用推挽输出

复用推挽就是如果你不想用单片机内部来输出,那么你可以通进行复用,将输出转移到其他外设上面,更改需要开启复用功能和时钟
在这里插入图片描述

8.复用推挽输出

复用开漏就是如果你不想用单片机内部来输出,那么你可以通进行复用,将输出转移到其他外设上面,更改需要开启复用功能和时钟
在这里插入图片描述

总结

另外关于GPIO的速率(2MHz,10MHz,50MHz),很多人认为这个速率就是GPIO的信号输出速率,其实不然,这个速率只是GPIO的硬件响应速率,可以理解为高低电平反转的速率,并不是信号输出速率,信号输出速率受软件影响。

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

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

相关文章

【蓝桥杯第十三届省赛B】(部分详解)

九进制转十进制 #include <iostream> #include<math.h> using namespace std; int main() {cout << 2*pow(9,3)0*pow(9,2)2*pow(9,1)2*pow(9,0) << endl;return 0; }顺子日期 #include <iostream> using namespace std; int main() {// 请在此…

Vue.js基础指令

(在讲指令之前,可以先了解插值表达式,如果已经知道,当我没说) 一.插值表达式 1.数据绑定最常见的形式就是双大括号的文本插值,Mustache上属性的值替代。只要绑定的数据对象上属性发生了改变,插值处的内容都会更新。,message 是将数据解析成纯文本的,也就是说,就算中…

BM19 寻找峰值(二分查找)

import java.util.*; public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param nums int整型一维数组 * return int整型*/public int findPeakElement (int[] nums) {// write code hereint lef…

Thread 之start 和run 的区别

Java Thread 之start 和run 的区别 用start方法来启动线程&#xff0c;真正实现了多线程运行&#xff0c;这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程&#xff0c;这时此线程处于就绪&#xff08;可运行&#x…

持续交付与持续部署相关概念(CD)

目录 一、概述 二、持续交付基本概念 2.1 持续交付的含义 2.1.1 项目管理的视角 2.1.2 产品研发的视角 2.1.3 总结 2.2 持续交付涉及的运作环境 2.2.1 开发环境 2.2.2 测试环境 2.2.3 UAT环境 2.2.4 准生产环境 2.2.5 生产环境 2.3 总结 三、持续部署基本概念 3.…

数据结构八大常见的排序

数据结构八大常见的排序 常见排序算法分类1.插入排序2.希尔排序(缩小增量排序)3.选择排序4.堆排序5.冒泡排序6.快速排序7.归并排序归并排序非递归的实现8.计数排序 常见排序算法分类 1.插入排序 基本思想&#xff1a;把待排序的数组按大小逐个插入到一个已经排好序的有序序列中…

【Java EE】多线程(一)

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

物联网实战--入门篇之(六)嵌入式-WIFI驱动(ESP8266)

目录 一、WIFI简介 二、基础网络知识 三、思路讲解 四、代码分析 4.1 状态机制 4.2 客户端连接 4.3 应用数据接收处理 4.4 数据发送 4.5 主函数调用 4.6 网络连接ID分配 五、总结 一、WIFI简介 WIFI在我们生活中太常见了&#xff0c;手机电脑都可以用WiFi连接路由器进行上…

MIT最新研究成果 机器人能够从错误中纠偏 无需编程介入和重复演示

目前科学家们正在努力让机器人变得更加智能&#xff0c;教会他们完成诸如擦拭桌面&#xff0c;端盘子等复杂技能。以往机器人要在非结构化环境执行这样的任务&#xff0c;需要依靠固定编程进行&#xff0c;缺乏场景通用性&#xff0c;而现在机器人的学习过程主要在于模仿&#…

开关恒流源简介

目录 工作原理 设计要点 应用场景 初步想法&#xff0c;为参加活动先占贴&#xff08;带家人出去玩没时间搞~~&#xff09;&#xff0c;后面优化 开关恒流源是一种基于开关电源技术的恒流输出电源设备。它采用开关管进行高速的开关动作&#xff0c;通过控制开关管的导通和截…

linux 一些命令

文章目录 linux 一些命令fdisk 磁盘分区parted 分区文件系统mkfs 格式化文件系统fsck 修复文件系统 mount 挂载swap 交换分区清除linux缓存df du 命令raid 命令基本原理硬raid 和 软raid案例raid 10 故障修复&#xff0c;重启与卸载 lvm逻辑卷技术LVM的使用方式LVM 常见名词解析…

数据库---------完全备份和增量备份的数据恢复,以及断点恢复

目录 一、在数据库表中&#xff0c;分三次录入学生考试成绩 1.1先创建库&#xff0c;创建表&#xff0c;完成三次数据的录入 1.2首次录入成绩后&#xff0c;做该表的完全备份 1.3第二次插入后 做增量备份 1.4第三次插入后 做增量备份 二、模拟数据丢失&#xff0c;并使用…

大文件上传做断点续传(有详细的代码内容)

文章目录 一、是什么分片上传断点续传 二、实现思路三、使用场景小结参考文献 一、是什么 不管怎样简单的需求&#xff0c;在量级达到一定层次时&#xff0c;都会变得异常复杂 文件上传简单&#xff0c;文件变大就复杂 上传大文件时&#xff0c;以下几个变量会影响我们的用户…

标题:Vue3 中父组件向子组件通信的方式

标题&#xff1a;Vue3 中父组件向子组件通信的方式 在 Vue3 中&#xff0c;父组件和子组件之间可以通过一些方式进行通信。其中&#xff0c;父组件向子组件通信主要有两种方式&#xff1a;传值和调用子组件的方法。 一、父组件向子组件传值 当父组件需要向子组件传递数据时&a…

快速排序---算法

1、算法概念 快速排序&#xff1a;通过一趟排序将待排记录分隔成独立的两部分&#xff0c;其中一部分记录的数据均比另一部分的数据小&#xff0c;则可分别对这两部分记录继续进行排序&#xff0c;以达到震哥哥序列有序。 快速排序的最坏运行情况是O()&#xff0c;比如说顺序数…

设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。

设计一个动物声音“模拟器”&#xff0c;希望模拟器可以模拟许多动物的叫声。要求如下&#xff1a; &#xff08;1&#xff09;编写接口Animal Animal接口有2个抽象方法cry()和getAnimaName()&#xff0c;即要求实现该接口的各种具体动物类给出自己的叫声和种类名称。 &…

设计模式 - 中介器模式

中介者模式使得组件通过一个中心点——中介者进行交互。组件不需要直接进行通信&#xff0c;而是将请求发送给中介者&#xff0c;由中介者进行转发&#xff01;在JavaScript中&#xff0c;中介者往往只是一个对象字面量或一个函数。 你可以将这种模式与空中交通管制员和飞行员…

科技革新,OTG充电新纪元!

在科技日新月异的今天&#xff0c;数据交互已经渗透到我们生活的每个角落&#xff0c;无论是工作还是娱乐&#xff0c;它都发挥着不可替代的作用。OTG技术的出现&#xff0c;极大地简化了设备间的联接与数据交换过程&#xff0c;但随之而来的接口有限和续航问题&#xff0c;也让…

产品经理的进阶之路

点击下载《产品经理的进阶之路》 1. 前言 本文深入剖析了产品经理这一职业从产品专员起步,逐步晋升为产品经理、高级产品经理,直至产品总监的整个职业发展路径。在每个阶段,产品经理都需承担不同的工作职责,展现出独特的职业特点。 2. 产品专员 关键词【产品需求/原型/文…

计算机服务器中了rmallox勒索病毒怎么办?rmallox勒索病毒解密数据恢复

网络技术的不断发展与应用&#xff0c;大大提高了企业的生产运营效率&#xff0c;越来越多的企业开始网络开展各项工作业务&#xff0c;网络在为人们提供便利的同时&#xff0c;也会存在潜在威胁。近日&#xff0c;云天数据恢复中心接到多家企业的求助&#xff0c;企业的计算机…