STM32F103GPIO工作模式及原理

目录

    • GPIO简介
    • GPIO工作模式
      • 输入模式
      • 输出模式
      • 输出速度
    • GPIO框图和电路解析
      • 电路标识
      • 电路元件
    • GPIO工作模式电路解析
      • 浮空输入
      • 上拉输入
      • 下拉输入
      • 模拟输入
      • 开漏输出
      • 推挽输出
      • 推挽式复用功能
      • 开漏式复用功能
    • IO工作模式的选取
      • 输入模式
      • 输出模式

GPIO简介

GPIO,全称为通用输入输出端口,是STM32系列微控制器中的一个重要概念。STM32芯片的GPIO引脚可以被配置为输入模式或输出模式,实现与外部设备的通信、控制以及数据采集功能。

GPIO工作模式

输入模式

  1. 浮空输入
  2. 上拉输入
  3. 下拉输入
  4. 模拟输入

输出模式

  1. 开漏输出
  2. 推挽输出
  3. 推挽式复用功能
  4. 开漏式复用功能

输出速度

  • 2MHz
  • 10MHz
  • 50MHz

GPIO框图和电路解析

在这里插入图片描述

电路标识

  • VDD通常指的是正电源电压,即芯片的工作电压。它是为芯片内部逻辑电路提供电源的,使得芯片能够正常工作。
  • VSS通常指的是地线或0V参考电压。它是为芯片内部逻辑电路提供参考电压的,使得芯片内部逻辑能够正常工作。
  • VDD_FT 对5伏容忍I/O脚是特殊的,它与VDD不同

电路元件

  • 保护二极管:保护二极管的作用是防止引脚外部过高或过低的电压输入。当引脚电压高于VDD时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,从而保护芯片不受异常电压的损坏。 然而,尽管有二极管的保护,大电压和大电流的接入仍可能烧坏芯片。因此,在设计中应考虑引脚的保护电路,避免直接外接大功率驱动器件,如电机等。
  • 上下拉电阻:上下拉电阻的作用是将不确定的信号线确定为高电平或低电平,防止外界干扰。具体来说,当某个引脚不控制时,上下拉电阻可以将该引脚确定为高电平或低电
  • TTL肖特基触发器:TTL肖特基触发器是一种数字逻辑门电路,由两个或多个与非门组成。它的作用是将输入的模拟信号转换为数字信号,即当输入信号达到一定幅度时,触发器输出高电平,否则输出低电平。平。
  • P-MOS:P-MOS管通常与输出引脚相连,用于控制输出信号的电平状态。当输出信号为高电平时,P-MOS管导通,输出引脚通过P-MOS管连接到VDD,输出高电平。当输出信号为低电平时,P-MOS管截止,输出引脚通过N-MOS管接地,输出低电平。
  • N-MOS:N-MOS管通常与输出引脚相连,用于控制输出信号的电平状态。当输出信号为高电平时,N-MOS管截止,输出引脚通过P-MOS管连接到VDD,输出高电平。当输出信号为低电平时,N-MOS管导通,输出引脚接地,输出低电平。

GPIO工作模式电路解析

浮空输入

请添加图片描述

浮空输入,是指不接入上拉或下拉电阻,通过TTL肖特基触发器使得输入进来的电平数据更加稳定。在该模式下,引脚的电平状态完全取决于外部信号,当外部信号不接入时,引脚的电平状态不确定。这种模式一般用于按键检测之类的应用中。

上拉输入

请添加图片描述

上拉输入通过接入上拉电阻来读取引脚电平。当外部信号未接入时,引脚默认电平为高电平。

下拉输入

请添加图片描述

下拉输入通过接入下拉电阻来读取引脚电平。当外部信号未接入时,引脚默认电平为低电平。

模拟输入

请添加图片描述

开漏输出

请添加图片描述
在开漏输出模式下P-MOS不参与工作,控制输出0,N-MOS导通,此时为低电平,控制输出为1,N-MOS关闭,使得引脚既不输出高电平,也不输出低电平,有IO外部链接决定。

推挽输出

请添加图片描述
在推挽输出模式下,当内部信号为1时,上边的P-MOS管导通,下边的N-MOS管截止,IO口输出高电平。当内部信号为0时,上边的P-MOS管截止,下边的N-MOS管导通,IO口输出低电平。

推挽式复用功能

请添加图片描述
复用推挽输出模式下的IO不再受ODR控制,当外围电路产生低电平时,会导致IO口输出低电平;当外围电路产生高电平时,会导致IO口输出高电平。

开漏式复用功能

请添加图片描述
在复用开漏输出模式下,IO可以输出高低电平,但无法直接读取外部信号,该模式下的IO不再受ODR控制。由于开漏输出只能输出低电平,如果要输出高电平必须通过上拉电阻才能实现,因此上拉电阻的选择也会影响复用开漏输出的工作状态。

IO工作模式的选取

输入模式

浮空输入

  • 当外部电路中已经包含适当的下拉电阻时,可以选择浮空输入模式。如果连接的是一个开关,开关的另一端已经通过外部电阻连接到地,那么可以选择使用浮空输入模式。
  • 在某些模拟电路中,输入信号可以通过电阻分压器来模拟,当输入信号为0时,电阻分压器的输出电压为0V,相当于浮空输入模式。

注:需要注意的是,浮空输入模式并不常用,但在特定情况下,如模拟输入或低功耗下省电等场景中可能会使用到。在使用浮空输入模式时,应避免外部信号功率很小,否则可能会导致内部上拉电阻影响外部输入电平。因此,在选择使用浮空输入模式时需要根据实际情况进行评估和选择。
上拉输入

  • 上拉输入主要用于检测低电平的输入,并能在未输入时默认IO为高电平。这种模式适用于电路为低有效的元器件的情况(例如LED共阳极)。

下拉输入

  • 下拉输入主要用于检测高电平的输入,并能在未输入时默认IO为低电平。这种模式适用于电路为高有效的元器件的情况(例如LED共阴极)。

模拟输入

  • 当需要采集模拟量信号时,如电压、电流、温度等参数,模拟输入模块可以将这些信号采集到计算机中,并进行相应的处理。
    在自动化和信息化系统中,模拟输入模块可以应用于各种传感器和变送器的信号采集,实现数据采集和监控系统的集成。

输出模式

开漏输出

  • 多设备共享总线:开漏输出允许多个设备共享同一个总线或信号线,通过合理的电平控制,实现对总线或信号线的协调使用,避免冲突和干扰。
  • LED控制:开漏输出也常用于控制LED(Light-EmittingDiode)的亮灭。LED在工作时需要限流,以避免过电流损坏。通过使用开漏输出和外部限流电阻,可以有效控制LED的亮度和闪烁频率。
  • 输入/输出扩展:开漏输出可用于输入/输出(I/O)扩展。通过使用外部电阻和开漏输出组合,可以将一个GPIO(General Purpose
    Input/Output)引脚扩展为多个输入或输出引脚。
  • 推挽输出无法满足需求时:开漏输出和推挽输出在工作原理、上拉电阻、输出电流和应用场景上存在差异。例如,当需要直接驱动负载时,推挽输出更合适;而在多设备共享总线的场景中,开漏输出更为适合。

推挽输出

  • 当输出电平为0V和3.3V时,推挽输出模式是最佳选择。这是因为推挽输出可以输出高电平和低电平,并且不需要外部上拉或下拉电阻。
  • 在高速切换开关状态的应用中,推挽输出模式也是很好的选择。因为它既提高了电路的负载能力,也提高了开关速度。

推挽式复用功能

  • 当GPIO的引脚用作串口的输出时,可以使用复用推挽输出模式。这种模式可以提高电路的负载能力和开关速度,适用于高速切换开关状态的应用。

开漏式复用功能

  • 控制多个PWM信号:当需要控制多个PWM信号时,例如,当多个PWM信号由同一GPIO口输出,并且需要连接在一起时,可以使用复用开漏输出模式。
  • 复用其他外设功能:当GPIO口需要复用其他外设功能,例如I2C的SCL或SDA等,复用开漏输出模式可以方便地实现这些功能。
    多路输出连在一起:当需要将多个输出端口连在一起时,例如,控制多个LED或其他负载,复用开漏输出模式可以方便地实现。

有什么错误请及时指出🤝

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

isaacgym(legged_gym)学习 (二)—— 设置环境地形

isaacgym(legged_gym)学习 (二)—— 设置环境地形 文章目录 isaacgym(legged_gym)学习 (二)—— 设置环境地形前言一、了解isaacgym中地形如何构成的二、自定义修改1.代码2.查看script/play.py 总结 前言 如何设置isaacgym中的环…

CISSP 第9章:安全脆弱性、威胁和对策

第九章 安全脆弱性、威胁和对策 9.1 评估和缓解安全脆弱性 9.1 硬件 处理器 执行类型 多任务处理: 同时处理两个或更多任务 多处理: 利用多个处理器完成一个应用程序的处理能力 多程序设计:通过操作系统对单个处理器上的两个任务进行协调&…

NPS 内网穿透安装

NPS 内网穿透安装 NPS分为服务端和客户端,对应的不同操作系统软件可以在GitHub RELEASES自行选择下载。 服务端搭建 由于个人非企业级使用,为了方便直接使用docker安装 1.docker运行 (注意需要提前下载conf文件,或者将镜像中文件copy出来…

.net 开源混淆器 ConfuserEx

官网:ConfuserEx 下载地址:Releases yck1509/ConfuserEx GitHub 使用参考:https://www.cnblogs.com/zhangzhi19861216/p/3937434.html

我是在一片骂声中成长起来的!!

曾几何,我的技术真的很烂,烂到技术主管每次都是点名要Review我的业务代码。 曾几何,我对技术沉淀没有一点自我意识,总是觉得临时抱一下佛脚就可以了。 曾几何,我也觉得技术无用,看看那些业务领导&#xf…

第5章 保护资产安全

5.1 对信息和资产进行识别和分类 数据安全生命周期管理是指数据保护始于数据被首次创建时,一直持续到该数据被销毁时。 实现生命周期保护的第一步是对信息和资产进行识别和分类。 组织常将分类定义纳入安全策略中。然后,人员根据安全策略要求适当地标记…

小黑迈出了应用开发第一步,通过武沛奇老师b站django入门课程了解了django,准备学习前端基础:django入门沛奇老师课程笔记

课程来源: https://www.bilibili.com/video/BV1NL41157ph/?p71&spm_id_from333.880.my_history.page.click 课程链接与学习资料推荐 django入门课程 https://www.bilibili.com/video/BV1NL41157ph/?p71&spm_id_from333.880.my_history.page.click django入门项目…

c语言-库函数qsort()初识

目录 前言一、qsort()的介绍及使用1.1 qsort()的介绍1.2 qsort()的使用1.2.1 使用qsort|()对整型数组按照升序排序1.2.2 使用qsort()对整型数组按照降序排序1.2.3 使用qsort()对结构体数组数据进行排序 二、利用冒泡排序模拟实现对任何数据进行排序2.1 冒泡排序2.2 模仿qsort()…

BurpSuite信息收集篇

BurpSuite信息收集篇 1.填充目标站点地图2.使用 Burp Suite 自动发现内容3.使用 Burp Suite 枚举子域1.填充目标站点地图 演示站点 ginandjuice.shop 1、抓取目标的请求包 2、在不关闭浏览器的情况下,转到目标>站点地图。请注意,已自动添加一个节点来表示目标域 3、右键…

【EasyExcel】导出excel冻结表头和冻结指定列并支持筛选器

需求背景: 导出excel的同时冻结表头和前两列基础信息,方便导出后用户查看信息。 一、技术选型: easyExcel的自定义写策略处理:SheetWriteHandler 二、方案设计:(基于实现 SheetWriteHandler 接口&#xf…

RabbitMQ(九)死信队列

目录 一、简介1.1 定义1.2 何时进入死信队列?1.3 死信消息的变化1.4 死信队列的应用场景1.5 死信消息的生命周期 二、代码实现2.1 死信队列的配置步骤2.2 配置类2.3 配置文件2.4 生产者2.5 业务消费者2.6 死信消费者2.7 测试结果 三、总结 RabbitMQ 是流行的开源消息…

【EI会议征稿通知】第三届城市规划与区域经济国际学术会议(UPRE 2024)

第三届城市规划与区域经济国际学术会议(UPRE 2024) 2024 3rd International Conference on Urban Planning and Regional Economy 第三届城市规划与区域经济国际学术会议(UPRE 2024)于2024年4月19-21日在泰国曼谷举行。会议旨在…

Qt/QML编程学习之心得:Linux下读写文件File(24)

在Linux嵌入式系统中,经常会使用Qt来读写一个文件,判断一个文件是否存在,具体如何实现呢? 首先,要使用linux系统中相关的头文件: #include <unistd.h> #include <stdio.h> #include <stdlib.h> 其次,判断路径是否存在, if(!dir.exists()){mkdir(…

智能驾驶打响“进阶战”:高、中、低阶赛道如何突围?

伴随智能驾驶普及进入新周期&#xff0c;高、中、低阶市场呈现不同的突围方式。 根据高工智能汽车研究院监测数据&#xff0c;2023年1-9月&#xff0c;中国市场&#xff08;不含进出口&#xff09;乘用车新车销售标配搭载L2&#xff08;含L2&#xff09;的渗透率达到36.31%&am…

QT常用控件使用及布局

QT常用控件使用及布局 文章目录 QT常用控件使用及布局1、创建带Ui的工程2、ui界面介绍1、界面设计区2、对象监视区3、对象监属性编辑区4、信号与槽5、布局器6、控件1、Layouts1、布局管理器2、布局的dome 2、Spacers3、Buttons4、项目视图组(Item Views)5、项目控件组(Item Wid…

【sgPasswordInput】自定义组件:带前端校验密码强度的密码输入框,能够提供密码强度颜色提示和文字提示

特性&#xff1a; 有密码强度颜色提示密码强度进度条提示支持设置默认输入提示和密码长度 sgPasswordInput源码 <template><div :class"$options.name" style"width: 100%"><el-inputstyle"width: 100%"ref"psw"type&…

软件使用手册

一简介 软件分两部分&#xff0c;股票监测程序&#xff0c;监测列表配置数据页面以及手机端接收监控数据。股票监测程序需要在电脑上运行。下载地址为程序下载地址。监控股票配置页面地址为动态列表。 二使用介绍 2.1监控客户端 2.1.1程序安装及登录 下载安装exe程序程序下载地…

C#开源的一款友好的.NET SDK管理器

前言 今天推荐一款由C#开源的、友好的.NET SDK管理器&#xff1a;Dots。 工具介绍 Dots 是一款 .NET SDK 管理器&#xff0c;可让您轻松安装、卸载和切换 .NET SDK。它是一款跨平台工具&#xff0c;可在 Windows 和 macOS 上运行&#xff0c;即将支持 Linux。它由 C# 编写&a…

部署可道云网盘的一个漏洞解决

目录 1漏洞展示 2.防范措施 1漏洞展示 因为可道云网盘的上传文档有保存在 /data/Group/public/home/文档/ 中,当别有用心之人知道个人部署的域名与上次的文件后&#xff0c;可以进行访问拿到uid。例我在我部署的网盘上上次一个aa.php 文件&#xff0c;然后拿来演示 然后通过…

Axure RP Extension For Chrome 插件安装

1. 下载好 AXURE RP EXTENSION For Chrome 插件之后解压成文件夹 2. 打开浏览器&#xff0c;找到设置--更多工具--扩展程序--加载已加压的扩展程序&#xff0c;选择解压好的文件夹 3. 点击详细信息&#xff0c;打开访问网址权限
最新文章