【stm32】史上最详细的8种IO口模式
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口模式相关推荐
- STM32八种IO口模式
1.模式介绍 STM32有八种IO口模式,分别是:模拟输入.浮空输入.上拉输入.下拉输入.开漏输出.推挽输出.复用开漏输出和复用推挽输出. 1.模拟输入 GPIO_Mode_AIN模拟输入,即关闭施密 ...
- 引脚悬空是什么电平_STM32单片机必须掌握的八种IO口模式和引脚配置方式
八种IO口模式STM32有八种IO口模式,分别是:模拟输入.浮空输入.上拉输入.下拉输入.开漏输出.推挽输出.复用开漏输出和复用推挽输出.1.模拟输入GPIO_Mode_AIN模拟输入,即关闭施密特触 ...
- STM32八种IO口模式区别,以及上拉输入、下拉输入、浮空输入、模拟输入的区别
最近在看数据手册的时候,发现在 Cortex-M3 里,对于 GPIO 的配置种类有 8 种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输 ...
- GPIO的工作方式/STM32八种IO口模式区别
GPIO基本结构 GPIO工作方式 4种输入模式: 输入浮空 输入上拉 输入下拉 模拟输入 4种输出模式: 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能 最近在看数据手册的时候,发现在 Cort ...
- stm32读取io口高低电平计数_最全的STM32八种IO口模式讲解(已经标注,新手必备)
以及上拉输入.下拉输入.浮空输入.模拟输入的区别 最近在看数据手册的时候,发现在 Cortex-M3 里,对于 GPIO 的配置种类有 8 种之多: ( 1 ) GPIO_Mode_AIN 模拟输入 ...
- 8种IO口模式的配置(复制粘贴的,供自己学习的)
以及上拉输入.下拉输入.浮空输入.模拟输入的区别 最近在看数据手册的时候,发现在 Cortex-M3 里,对于 GPIO 的配置种类有 8 种之多: (1) GPIO_Mode_AIN 模拟输入 (2 ...
- 史上最详细的微生物扩增子数据库整理
声明:文件所有链接内容来自"生信控"公众号,已经获作者向屿授权. 本人对每个数据库的使用目的和经验配导读,需要使用的小伙伴读点击链接跳转原文学习. "生信控"相 ...
- 史上最详细的MySQL操作事例
史上最详细的MySQL操作事例 文章目录 史上最详细的MySQL操作事例 一.数据库的操作 二.数据表的操作 三.数据表的增删查该 四.数据准备 五.条件查询 六.排序 七.聚合函数 八.分组 九.分 ...
- IPV4与IPV6的区别(史上最详细)
IPV4与IPV6的区别(史上最详细) 描述 IPv4 IPv6 地址 长度为 32 位(4 个字节).地址由网络和主机部分组成,这取决于地址类.根据地址的前几位,可定义各种地址类:A.B.C.D 或 ...
最新文章
- Matlab/Simulink ROS
- C 语言编程 — 大小端区分
- java学习笔记(十)----String类和StringBuffer类
- 安卓手机Charles抓包显示unknown原因及解决办法
- vue.js实现价格格式化
- 基于 Token 的身份验证方法
- pil库修改图片大小_Gvcode库:一个更简单的、华人开源的、自动生成验证码的python库...
- Sentinel 1.8.0 年度版本发布,熔断降级重构升级!
- 阴阳师师徒系统不同服务器,阴阳师体服师徒系统未收录改为随机SSR
- jquery 设置style:display 其实很方便的哦
- 一.路径规划---二维路径规划仿真实现-gmapping+amcl+map_server+move_base
- 10年产品人总结了9条血泪教训
- 数据结构课程设计(基于AVL树的身份证管理系统)
- java后端概述_java后端开发知识点
- 吴伯凡-认知方法论-你心之外无世界
- checkbox全选、清除、反选
- python调用系统软键盘_python库 pywinio虚拟键盘使用
- 静态全局变量和全局变量的区别
- 少年中国说——梁启超〔近现代〕
- Java练习——牛客网天才问题
热门文章
- WebRTC第七步:webrtc编译调试
- 硬盘、软盘、光盘之间有什么不同的地方
- html多张图片组合成一张,如何把多张图片快速拼接组合到一起成一张_微信图文排版技巧?...
- Origin(Pro):3D图-投影、垂线、标签
- android自动标齐,自定义FlowLayout,支持多种布局优化--android-flowlayout
- 0x80004005错误代码解决方法_英雄联盟手游100034代码是什么意思-LOL手游100034错误代码解决方法...
- JavaScript中,返回上一个页面时,如何保证上一个页面的不刷新?
- ROS ubuntu20.0 noetic 古月居gazebo模型倒入脱坑
- java嵌套_Java嵌套类
- 联想a305微型计算机,联想A305机身特殊的布局与操作体验