1.1 STM32_GPIO_基本知识

GPIO概述

GPIO全称为通用输入输出端口,可以对外设的信息进行采集以及对外设进行控制。

GPIO最大翻转频率计算

GPIO可以进行快速翻转,每次翻转最快只需两个时钟周期。例如STM32的晶振为72MHz,那么GPIO的最快翻转速度为72/2 = 36MHz。对于F1,手册上标注的最快速度为50MHz,该数值是在超频下测量,而不是72MHz。

GPIO的分组

GPIO以大写字母ABC...进行分组,每一个组最多有16个IO,最终标注为PA0~PA15等等。

电气特性

STM32的工作电压:

工作电压范围为2V~3.6V,一般接入3.3V电压。

GPIO的识别电压范围如下:

  • 对于CMOS端口,高电平VIH:1.833V~3.6V,低电平VIL:-0.3V~1.164V
  • 对于TTL端口,可以兼容5V,在手册上这种IO标注FT字样,如下图:

GPIO的输出电流:

对于单个IO,最大为25mA,这并不是意味着所以IO都可以同时输出25mA,STM32的总输出电流最大为150mA,因此各IO的输出电流之和不能超过150mA

GPIO基本结构

GPIO的基本结构图如下(以F1为例):

上下拉电阻作用范围分析

可以看到,在输入驱动器这个框中有两个电阻,一个连接VDD、一个连接VSS,它们是芯片内部的上拉、下拉电阻。从摆放的位置可以看出,当IO为输入模式时,信号会流入输入驱动器,此时上下拉电阻有效(可以配置成上拉、下拉、浮空);当IO为输出模式时,信号从输出驱动器流出,不经过上下拉电阻,因此输出模式下配置上下拉电阻不起作用。

上下拉电阻的阻值为30kΩ~50kΩ,电阻比较大,而VDD为3.3V,最终算得的电流很小,驱动能力弱,因此也称这两个电阻为弱的上下拉电阻。这里的弱指的是驱动能力弱。

信号输入过程分析

当IO处于输入状态时,信号从引脚流入输入驱动器,经过上下拉电阻后最终存入GPIO的IDR寄存器,CPU可以通过读取IDR寄存器来获取当前IO的电平值。

信号输出过程分析

当IO处于输出状态时,信号从输出驱动器流出,信号的来源为P-MOS和N-MOS。当P-MOS导通时,IO接入VDD,输出高电平;当N-MOS导通时,IO接入VSS,输出低电平。

保护二极管工作分析

保护二极管用于防止IO输入电压过低或过高而产生损坏。 当为CMOS时,VDD=3.3V,当为TTL时,VDD=5V。下面以CMOS进行分析:

可以看到,当外部接入5V,并且有限流电阻R时,上方二极管导通。二极管导通电压为0.3V,VDD=3.3V,因此VA=0.3+3.3=3.6V,即:二极管将VA钳位在3.6V,这符合CMOS的高电平检测范围,因此对芯片内部的电路进行了保护。

限流电阻R是必须存在的。若R过小或不存在,二极管导通后的电阻很小,VA依旧为3.6V,此时电流就非常的大,直接打穿二极管,造成器件损坏。

当外部接入-5V时,分析方法与接入+5V类似,最终二极管钳位-0.3V,符合CMOS的低电平检测范围。限流电阻R依旧不可缺少或阻值过小。

施密特触发器(肖特基触发器) 

施密特触发器的作用是实现整形电路,能够将非标准的方波整形成方波。整形结论如下:

  • 当输入电压高于正向阈值电压,输出为高
  • 当输入电压低于负向阈值电压,输出为低
  • 当输入电压在正向、负向阈值之间,输出不改变。

下面假设正向阈值电压为2.7V,负向阈值电压为1.3V,分析整形过程,过程图如下:

  • 在过程1,输入电压低于阈值1.3V,因此整形为低电平0V。
  • 在过程2,输入电压处于两个阈值之间,因此整形的电平保持不变,依旧为低电平的0V。
  • 在过程3,输入电压高于阈值2.7V,因此整形为高电平3.3V。
  • 在过程4,输入电压处于两个阈值之间,因此整形的电平保持不变,依旧为高电平的3.3V。

P-MOS与N-MOS工作分析

对于P-MOS,需要满足Vgs<0时,MOS管导通。因为VS=VDD=3.3V,所以VG=0V时导通。

对于N-MOS,需要满足Vgs>0时,MOS管导通。因为VS=VSS=0V,所以VG=3.3V时导通。

GPIO的八种工作模式

GPIO的八种工作模式分为4个输入模式、4个输出模式。

输入模式

4个输入模式有:浮空输入、上拉输入、下拉输入、模拟输入

输入模式功能描述
浮空输入完全浮空,状态不定
上拉输入内部上拉,默认高电平
下拉输入内部下拉,默认低电平
模拟输入用于ADC、DAC

1、浮空输入

浮空输入时,上下拉电阻关闭、双MOS管关闭,肖特基触发器开启。信号流入输入驱动器,通过肖特基触发器整型之后将数据存入到数据数据寄存器IDR中,CPU读取IDR的值从而获取到IO的电平状态。

因为没有上下拉电阻,所以在空闲时(IO未接外设,为浮空),IO状态是不确定的。即:有时是1有时是0。

2、上拉输入

上拉输入时,上拉电阻开启,下拉电阻关闭、双MOS管关闭,肖特基触发器开启。信号流入输入驱动器,通过肖特基触发器整型之后将数据存入到数据数据寄存器IDR中,CPU读取IDR的值从而获取到IO的电平状态。

因为有上拉电阻,所以在空闲时(IO未接外设,为浮空),IO状态是高电平,同时这个高电平可以向外驱动一些设备,但这个驱动能力很弱。

3、下拉输入

下拉输入时,下拉电阻开启,上拉电阻关闭、双MOS管关闭,肖特基触发器开启。信号流入输入驱动器,通过肖特基触发器整型之后将数据存入到数据数据寄存器IDR中,CPU读取IDR的值从而获取到IO的电平状态。

因为有下拉电阻,所以在空闲时(IO未接外设,为浮空),IO状态是低电平。

4、模拟输入

模拟输入时,上下拉电阻关闭、双MOS管关闭,肖特基触发器关闭。信号流入输入驱动器,通过模拟输入路线进入到片上外设ADC和DAC

输出模式 

4个输出模式有:开漏输出、推挽输出、开漏复用、推挽复用 

输入模式功能描述
开漏输出强低电平,不能输出高电平
推挽输出最大输出25mA,可以输出强高电平和强低电平
开漏复用硬件IIC使用
推挽复用硬件SPI使用

1、开漏输出

开漏输出时,上下拉电阻关闭,肖特基触发器开启,这代表开漏输出时,也可以读取IO状态,和浮空输入的效果一样。P-MOS始终不导通,N-MOS可被控制是否导通,这代表开漏输出不能控制输出高电平,可以控制输出低电平

因为上述特性,当输出寄存器ODR写0时,IO输出低电平;ODR写1时,N、P都关闭,IO状态就是浮空输入,IO电平由外部决定。

2、开漏复用

开漏复用与开漏输出的区别在于,控制MOS的信号不由ODR控制,而由片上外设控制。

3、推挽输出

推挽输出时,上下拉电阻关闭,肖特基触发器开启,这代表推挽输出时,也可以读取IO状态,和浮空输入的效果一样。P-MOS、N-MOS可被控制是否导通,这代表推挽输出能控制输出高低电平。

因为上述特性,当输出寄存器ODR写0时,IO输出低电平;ODR写1时,IO输出高电平。这个高低电平都是强驱动,因为接入到外部的过程中没有经过限流电阻。

4、推挽复用

推挽复用与推挽输出的区别在于,控制MOS的信号不由ODR控制,而由片上外设控制。

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

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

相关文章

【合作原创】使用Termux搭建可以使用的生产力环境(一)

前言 真没想到一个Termux我居然玩了一个月之多&#xff0c;我的初衷只是想探求在手机上进行编程的可能性&#xff0c;当然不是看看那种&#xff0c;而是真正能用的那种&#xff0c;结果没想到折腾来折腾去居然就花了要一个月的时间。是时候将这些折腾的内容汇总成文档了&#…

IDL学习笔记(一)数据类型、基础运算、控制语句

近期&#xff0c;需要用到modis数据批量预处理&#xff0c;于是重新学习idl,感谢郭师兄推荐&#xff0c;以及张洋老师的详细教导。特以此为学习笔记&#xff0c;望学有所成。 IDL学习笔记&#xff08;一&#xff09; 数据类型数据类型创建数组类型转换函数代码输出print往文件…

TYUT设计模式大题

对比简单工厂&#xff0c;工厂方法&#xff0c;抽象工厂模式 比较安全组合模式和透明组合模式 安全组合模式容器节点有管理子部件的方法&#xff0c;而叶子节点没有&#xff0c;防止在用户在叶子节点上调用不适当的方法&#xff0c;保证了的安全性&#xff0c;防止叶子节点暴露…

16asm - 汇编介绍 和 debug使用

文章目录 前言硬件运行机制微机系统硬件组成计算机系统组成8086cpu组织架构dosbox安装配置debug debug使用R命令D命令E命令U命令T命令A命令标志寄存器 总结 前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解 十六位汇编 和 debug调试器的使用 硬件运行…

自动化检测三维扫描仪-三维扫描仪检测-三维建模自动蓝光测量系统

在现代工业制造领域&#xff0c;特别是在航天航空和汽车行业&#xff0c;产品零部件的精度和质量至关重要。CASAIM自动化智能检测系统能够实现对产品零部件的快速、准确的三维尺寸检测。其自动蓝光测量系统利用蓝色激光光源&#xff0c;通过非接触式扫描&#xff0c;能够快速获…

Maven、JAVAWeb、Servlet

知识点目标 1、MavenMaven是什么Maven项目的目录结构Maven的Pom文件Maven的命令Maven依赖管理Maven仓库JavaWeb项目 2.网络基础知识 3、ServletMaven Maven是什么 Maven是Java的项目管理工具&#xff0c;可以构建&#xff0c;打包&#xff0c;部署项目&#xff0c;还可以管理…

VLC 播放的音视频数据处理流水线搭建

VLC 播放的音视频数据处理流水线搭建 音视频流播放处理循环音频输出处理流水线VLC 用 input_thread_t 对象直接或间接管理音视频播放有关的各种资源,包括 Access, Demux, Decode, Output, Filter 等,这个类型定义 (位于 vlc-3.0.16/include/vlc_input.h) 如下: s…

浅谈edusrc挖掘技巧+信息收集新姿势

目录 1 前言 2 信息收集资产收集 2.1域名查询 2.2邮箱查询 2.3 ICP备案信息查询 3 综合资产查询姿势 3.1 FOFA鹰图 3.2企查查/小蓝本 3.3 黑客语法&#xff08;Google必应&#xff09; 4 统一身份认证登录绕过 4.1逻辑缺陷绕过 4.2爆破账户/前端绕过验证 5 纯手工信…

Ubuntu Linux操作系统

一、 安装和搭建 Thank you for downloading Ubuntu Desktop | Ubuntu &#xff08;这里我们只提供一个下载地址&#xff0c;详细的下载安装可以参考其他博客&#xff09; 二、ubuntu的用户使用 2.1 常规用户登陆方式 在系统root用户是无法直接登录的,因为root用户的权限过…

RDIFramework.NET CS敏捷开发框架 SOA服务三种访问(直连、WCF、WebAPI)方式

1、介绍 在软件开发领域&#xff0c;尤其是企业级应用开发中&#xff0c;灵活性、开放性、可扩展性往往是项目成功的关键因素。对于C/S项目&#xff0c;如何高效地与后端数据库进行交互&#xff0c;以及如何提供多样化的服务访问方式&#xff0c;是开发者需要深入考虑的问题。…

ProtoBuf快速上手(C++)

在快速上⼿中&#xff0c;会编写第⼀版本的通讯录 1.0。在通讯录 1.0 版本中&#xff0c;将实现&#xff1a; • 对⼀个联系⼈的信息使⽤ PB 进⾏序列化&#xff0c;并将结果打印出来。 • 对序列化后的内容使⽤ PB 进⾏反序列&#xff0c;解析出联系⼈信息并打印出来。 •…

PHP 方头像转为圆图

业务需要把创建海报上的用户头像由方形转为圆形&#xff0c;前端的样式设置不能用。 故采用GD的函数来对方图进行裁剪处理为圆图。 目录 裁剪函数 本地图片 远程图片 效果 参考文章 总结 裁剪函数 从网上找的一个裁剪图片的函数。 代码如下&#xff1a; /* * 将图片切…

代理IP地址的含义与设置指南‌

在数字化时代&#xff0c;互联网已经成为我们日常生活不可或缺的一部分。然而&#xff0c;在享受互联网带来的便利的同时&#xff0c;我们也面临着隐私泄露、访问限制等问题。代理IP地址作为一种有效的网络工具&#xff0c;能够帮助我们解决这些问题。本文将详细介绍代理IP地址…

基于Java Springboot个人财务APP且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…

红队/白帽必经之路(16)——如何用Metasploit 在边路进行信息刺探及爆破登录[既然是红队,那就对自己狠一点!!!]

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现] 专栏跑道一 ➡️网络空间安全——全栈前沿技术持续深入学习 专栏跑道二 ➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️ MYSQL REDIS Advan…

vue实现echarts饼图自动轮播

echarts官网&#xff1a;Examples - Apache ECharts echartsFn.ts 把echarts函数封装成一个文件 import * as echarts from "echarts";const seriesData [{"value": 12,"name": "过流报警"},{"value": 102,"name&qu…

C++之异常智能指针其他

C之异常&智能指针&其他 异常关于函数异常声明异常的优劣 智能指针auto_ptrunique_ptrshared_ptrweak_ptr定制删除器 智能指针的历史与boost库 特殊类单例模式饿汉和懒汉的优缺点 C四种类型转换CIO流结语 异常 try括起来的的代码块中可能有throw一个异常&#xff08;可…

混沌工程/混沌测试/云原生测试/云平台测试

背景 私有云/公有云/混合云等具有复杂&#xff0c;分布式&#xff0c;环境多样性等特点&#xff0c;许多特殊场景引发的线上问题很难被有效发现。所以需要引入混沌工程&#xff0c;建立对系统抵御生产环境中失控条件的能力以及信心&#xff0c;提高系统面对未知风险得能力。 …

Hive学习基本概念

基本概念 hive是什么&#xff1f; Facebook 开源&#xff0c;用于解决海量结构化日志的数据统计。 基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张表&#xff0c;并提供类SQL查询功能 本质是将HQL转化为MapReduce程序。 Hive处理的数据存储在H…

数据分析流程中的Lambda架构,以及数据湖基于Hadoop、Spark的实现

文章目录 一、Lambda架构1、Lambda的三层架构2、简单解释&#xff1a;3、Lambda架构的优缺点 二、数据湖基于Hadoop、Spark的实现1、架构2、数据管理&#xff08;存储层的辅助功能&#xff09; 一、Lambda架构 1、Lambda的三层架构 Batch View&#xff08;批处理视图层&#…