当前位置: 首页 > news >正文

02、GPIO外设(一):基础知识

基础知识

  • 1、ZET6的引脚分布
  • 2、引脚输出
  • 3、引脚输入
  • 4、最大输出速度

1、ZET6的引脚分布

在这里插入图片描述

下面使用C8T6的引脚来类比ZET6的引脚,ZET6中的特殊功能引脚和C8T6的特殊功能引脚是一样。而通用IO引脚比C8T6多而已。下面的C8T6的特殊功能引脚的介绍:
STM32F103C8T6一共有48个引脚,他们分别为特殊功能的IO引脚和普通功能的IO引脚,其中特殊功能的IO引脚是用于给芯片提供固定的功能,不用提供给用户配置使用,特殊功能的IO引脚如下图所示:

在这里插入图片描述
如图所示:特殊功能引脚:芯片供电引脚(需要8个引脚),接入外部晶振(需要2个引脚),芯片复位(需要1个引脚),备份区域供电(需要1个引脚),启动BOOT0选择(需要1个引脚)。
则特殊功能引脚IO = 8 + 2 + 1 + 1 +1 = 13个引脚。48个引脚除去13个引脚,则还有35个IO引脚是提供给用户使用的。如下图所示:

在这里插入图片描述

想了解ZET6的完整的通用IO引脚,则可参考STM32F103xCDE数据手册

一个单片机提供了若此多的普通引脚,那么单片机是如何对这些普通功能引脚进行管理的喃?
答案:通过片上外设GPIO进行管理,单片机将这些普通引脚按照ABC…进行分组划分,被分到组A的引脚就属于GPIOA管理,被分到组B的引脚就属于GPIOB管理。如上图所示:F103C8T6的普通引脚被分为了PA0 ~ PA15(一共16个IO),PB0 ~ PB15(一共16个IO),PC13 ~ PC15(一共3个IO)。

则综上可得:GPIOA管理16个IO引脚,GPIOB管理16个IO引脚,GPIOC管理3个引脚。如下图所示:

在这里插入图片描述
如图:GPIO中的每一个盒子负责管理一个IO引脚,每一个盒子就是寄存器的某一位或者多个位的组合。如下图所示:
在这里插入图片描述

2、引脚输出

引脚的输出分为如下:

😀由谁控制输出:通用功能,复用功能,和重映射功能。
😀输出电平方式:推挽输出,开漏输出。

①由谁控制输出:
若GPIO由CPU控制输出,则为通用功能;若GPIO由片上外设控制输出,则为复用功能。如下图所示:

在这里插入图片描述
重映射功能就是一个IO引脚由多个片上外设控制,当同一时间这些片上外设需要使用这根IO引脚时,就需要使用到重映射功能。如下图示:
在这里插入图片描述
在这里插入图片描述
如上图:当需要同时使用到外设USART1_TX和TIM1_CH2时,则就需要重映射,将USART1_TX重映射到PB6引脚。

②输出电平方式:
(1)推挽输出:输出高电平由P-MOS决定,输出低电平由N-MOS决定
在这里插入图片描述

😀当需要引脚输出高电平时:P-MOS导通,N-MOS断开,VDD连接到引脚,引脚输出高电平
😀当需要引脚输出低电平时:P-MOS断开,N-MOS导通,VSS连接到引脚,引脚输出低电平

(2)开漏输出:P-MOS一直是断开状态,输出高电平没有驱动能力,输出低电平由N-MOS决定
在这里插入图片描述

😀当需要引脚输出高电平时:P-MOS一直断开,N-MOS断开,没有驱动能力,引脚是高阻态
😀当需要引脚输出低电平时:P-MOS一直断开,N-MOS导通,VSS连接到引脚,引脚输出低电平

3、引脚输入

引脚的输出分为如下:上拉输入,下拉输入,浮空输入,模拟输入4种模式。
在这里插入图片描述

😀上拉输入:上面的开关闭合,下面的开关断开,引脚在没有电平输入的情况下面,引脚默认电平为高电平状态
😀下拉输入:上面的开关断开,下面的开关闭合,引脚在没有电平输入的情况下面,引脚默认电平为低电平状态。
😀浮空输入:上面的开关断开,下面的开关断开,引脚在没有电平输入的情况下面,引脚默认电平为不定状态,会受到电磁波干扰。
😀模拟输入:为ADC采样服务的特定输入

4、最大输出速度

最大输出速度:即IO引脚输出高电平和输出低电平最快的切换的最快频率
由于硬件性能有限,让IO引脚输出高电平,则IO引脚并不会立即输出高电平,会有一个缓冲时间(下图是上升时间/下降时间),而输出低电平也是同理。
在这里插入图片描述
提供了3个最大输出速度:2MHz,10MHz,50MHz
当IO引脚的最大输出速度为2MHz时:理想情况下一个电平切换时间t = (1s/2MHz)/2 =250ns ,但是实际情况如下图所示:电平切换实际t = 500ns
在这里插入图片描述
当IO引脚的最大输出速度为10MHz时:理想情况下一个电平切换时间t = (1s/10MHz)/2 =50ns,但是实际情况如下图所示:电平切换实际t = 100ns
在这里插入图片描述
当IO引脚的最大输出速度为50MHz时:理想情况下一个电平切换时间t = (1s/10MHz)/2 =10ns,但是实际情况如下图所示:电平切换实际t = 20ns
在这里插入图片描述

综上: 输出的频率最大,上升时间和下降时间越小,输出速度就越快,功耗就越大。

相关文章:

  • 3D人脸扫描技术如何让真人“进入“虚拟,虚拟数字人反向“激活“现实?
  • 机器学习在催化剂设计中的应用理论加实操
  • Muduo网络库实现 [十四] - HttpResponse模块
  • 【AI提示词】哲学三问
  • Java基础系列-LinkedList源码解析
  • 面试情景题:企业内部系统如何做微前端拆分,如何通信?
  • IDEA 中 Scala 项目远程连接虚拟机 Spark 环境
  • OpenCV 模板匹配方法详解
  • 中间件--ClickHouse-7--冷热数据分离,解决Mysql海量数据瓶颈
  • springboot自定义starter(避坑教学)
  • OpenCV day5
  • kubernetes-高频率使用命令
  • LeetCode 2176.统计数组中相等且可以被整除的数对:两层遍历模拟
  • 【专题刷题】双指针(三):两数之和,三数之和,四数之和
  • 第八章:探索新兴趋势:Agent 框架、产品与开源力量
  • 新能源汽车能量流测试的传感器融合技术应用指南
  • .net C# 使用Epplus库将Datatable导出到Excel合并首列
  • Python 让课堂“沉浸式进化”——虚拟现实教学辅助工具的开发实战
  • Windows平台用vistual studio 2017打包制作C++动态库
  • STL详解 - stack与queue的模拟实现
  • 美联储计划裁员约10%
  • 清雪车司机未拉手刹下车导致溜车被撞亡,事故调查报告发布
  • 泽连斯基抵达安卡拉,称乌将派出最高级别代表团参与谈判
  • 因存在安全隐患,福特公司召回约27.4万辆SUV
  • 复旦大学与上海杨浦共建市东医院
  • 英国收紧移民政策,技术工作签证、大学招生面临更严要求