8种IO口模式

4种输入模式 4种输出模式 (带上拉或者下拉)
浮空输入 推挽输出
上拉输入 复用式推挽输出
下拉输入 开漏输出
模拟输入 复用式开漏输出

1、浮空输入


浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。MCU直接读取I/O口电平,I/O的电平状态是不确定的,完全由外部输入决定;如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。 一般多用于外部按键输入

2、上拉输入


IO内部接上拉电阻,此时如果IO口外部没有信号输入或者引脚悬空,IO口默认为高电平 如果I/O口输入低电平,那么引脚就为低电平,MCU读取到的就是低电平

3、下拉输入


IO内部接下拉电阻,此时如果IO口外部没有信号输入或者引脚悬空,IO口默认为低电平 如果I/O口输入高电平,那么引脚就为高电平,MCU读取到的就是高电平

4、模拟输入

5、开漏输出


输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)

IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平

6、推挽输出


在推挽输出模式时,N-MOS管和P-MOS管都工作,如果我们控制输出为0,低电平,则P-MOS管关闭,N-MOS管导通,使输出低电平,I/O端口的电平就是低电平,若控制输出为1 高电平,则P-MOS管导通N-MOS管关闭,使输出高电平,I/O端口的电平就是高电平, 外部上拉和下拉的作用是控制在没有输出时IO口电平

此时施密特触发器是打开的,即输入可用,通过输入数据寄存器GPIOx_IDR可读取I/O的实际状态。I/O口的电平一定是输出的电平

挽输出输出0-接GND, IO输出1 -接VCC,读输入是未知的

                  推挽输出和开漏输出的区别
推挽输出 开漏输出
可以输出强高低电平,连接数字器件 可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极. 需要外接上拉电阻,才能实现输出高电平 合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内);在使用任何一种开漏模式时,都需要接上拉电阻,否则只能输出低电平
推挽输出电路: 其中IN端输出高电平时下面的PNP三极管截止,而上面NPN三极管导通,输出电平VS+;当IN端输出低电平时则恰恰相反,PNP三极管导通,输出和地相连,为低电平 开漏输出电路:IN端输出低电平时,三极管导通,使输出接地,IN端输出高电平时,三极管截止,所以引脚既不输出高电平,也不输出低电平,为高阻态。为正常使用时必须接上拉电阻

在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。

7、开漏复用输出


输出的高低电平的来源于其它外设,施密特触发器打开,输入可用,通过输入数据寄存器可获取I/O实际状态 除了输出信号的来源改变 其他与开漏输出功能相同
可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)

8、推挽复用输出


可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)

F4系列与F1系列区别:

本质上的区别是F4系列采用了Cortex-M4内核 ,而F1系列采用Cortex-M3内核
F1系列(M3)IO口基本结构:

F4系列(M4)IO口基本结构:

F4系列设计的更加高级与人性化,他将外部上下拉电阻转移到了输出/输入驱动器外部,使得输出模式下也可以实现内部上拉与下拉,方便了用户的使用,增加了灵活性。

引脚模式的配置方式如下:

1、作为普通GPIO输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。
2、作为普通GPIO输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。
3、作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。
4、作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。
5、作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。

【stm32】史上最详细的8种IO口模式相关推荐

  1. STM32八种IO口模式

    1.模式介绍 STM32有八种IO口模式,分别是:模拟输入.浮空输入.上拉输入.下拉输入.开漏输出.推挽输出.复用开漏输出和复用推挽输出. 1.模拟输入 GPIO_Mode_AIN模拟输入,即关闭施密 ...

  2. 引脚悬空是什么电平_STM32单片机必须掌握的八种IO口模式和引脚配置方式

    八种IO口模式STM32有八种IO口模式,分别是:模拟输入.浮空输入.上拉输入.下拉输入.开漏输出.推挽输出.复用开漏输出和复用推挽输出.1.模拟输入GPIO_Mode_AIN模拟输入,即关闭施密特触 ...

  3. STM32八种IO口模式区别,以及上拉输入、下拉输入、浮空输入、模拟输入的区别

    最近在看数据手册的时候,发现在 Cortex-M3 里,对于 GPIO 的配置种类有 8 种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输 ...

  4. GPIO的工作方式/STM32八种IO口模式区别

    GPIO基本结构 GPIO工作方式 4种输入模式: 输入浮空 输入上拉 输入下拉 模拟输入 4种输出模式: 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能 最近在看数据手册的时候,发现在 Cort ...

  5. stm32读取io口高低电平计数_最全的STM32八种IO口模式讲解(已经标注,新手必备)

    以及上拉输入.下拉输入.浮空输入.模拟输入的区别 最近在看数据手册的时候,发现在 Cortex-M3 里,对于 GPIO 的配置种类有 8 种之多: ( 1 ) GPIO_Mode_AIN 模拟输入 ...

  6. 8种IO口模式的配置(复制粘贴的,供自己学习的)

    以及上拉输入.下拉输入.浮空输入.模拟输入的区别 最近在看数据手册的时候,发现在 Cortex-M3 里,对于 GPIO 的配置种类有 8 种之多: (1) GPIO_Mode_AIN 模拟输入 (2 ...

  7. 史上最详细的微生物扩增子数据库整理

    声明:文件所有链接内容来自"生信控"公众号,已经获作者向屿授权. 本人对每个数据库的使用目的和经验配导读,需要使用的小伙伴读点击链接跳转原文学习. "生信控"相 ...

  8. 史上最详细的MySQL操作事例

    史上最详细的MySQL操作事例 文章目录 史上最详细的MySQL操作事例 一.数据库的操作 二.数据表的操作 三.数据表的增删查该 四.数据准备 五.条件查询 六.排序 七.聚合函数 八.分组 九.分 ...

  9. IPV4与IPV6的区别(史上最详细)

    IPV4与IPV6的区别(史上最详细) 描述 IPv4 IPv6 地址 长度为 32 位(4 个字节).地址由网络和主机部分组成,这取决于地址类.根据地址的前几位,可定义各种地址类:A.B.C.D 或 ...

最新文章

  1. Matlab/Simulink ROS
  2. C 语言编程 — 大小端区分
  3. java学习笔记(十)----String类和StringBuffer类
  4. 安卓手机Charles抓包显示unknown原因及解决办法
  5. vue.js实现价格格式化
  6. 基于 Token 的身份验证方法
  7. pil库修改图片大小_Gvcode库:一个更简单的、华人开源的、自动生成验证码的python库...
  8. Sentinel 1.8.0 年度版本发布,熔断降级重构升级!
  9. 阴阳师师徒系统不同服务器,阴阳师体服师徒系统未收录改为随机SSR
  10. jquery 设置style:display 其实很方便的哦
  11. 一.路径规划---二维路径规划仿真实现-gmapping+amcl+map_server+move_base
  12. 10年产品人总结了9条血泪教训
  13. 数据结构课程设计(基于AVL树的身份证管理系统)
  14. java后端概述_java后端开发知识点
  15. 吴伯凡-认知方法论-你心之外无世界
  16. checkbox全选、清除、反选
  17. python调用系统软键盘_python库 pywinio虚拟键盘使用
  18. 静态全局变量和全局变量的区别
  19. 少年中国说——梁启超〔近现代〕
  20. Java练习——牛客网天才问题

热门文章

  1. WebRTC第七步:webrtc编译调试
  2. 硬盘、软盘、光盘之间有什么不同的地方
  3. html多张图片组合成一张,如何把多张图片快速拼接组合到一起成一张_微信图文排版技巧?...
  4. Origin(Pro):3D图-投影、垂线、标签
  5. android自动标齐,自定义FlowLayout,支持多种布局优化--android-flowlayout
  6. 0x80004005错误代码解决方法_英雄联盟手游100034代码是什么意思-LOL手游100034错误代码解决方法...
  7. JavaScript中,返回上一个页面时,如何保证上一个页面的不刷新?
  8. ROS ubuntu20.0 noetic 古月居gazebo模型倒入脱坑
  9. java嵌套_Java嵌套类
  10. 联想a305微型计算机,联想A305机身特殊的布局与操作体验