【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 或 ...
最新文章
- 01-HTML基础与进阶-day6-录像281
- 一、如何创建一个状态栏扩展(火狐插件扩展开发教程)
- MySql中把一个表的数据插入到另一个表中的实现代码--转
- Java虚拟机1:什么是Java
- 注册表模板-OEM信息自定义
- sublime重装后碰到Unable to read Packages
- python 多功能下载网页
- dedeCMS如何进行关键词过滤替换和屏蔽非法词汇?
- [bzoj2850]巧克力王国_KD-Tree
- iframe调用父页面js方法_JS高级技巧
- mysql 乱码处理
- linux 内核优化
- STL基本操作及其运用
- OpenCV怎么下载?OpenCV下载后怎么配置?
- NotePad++安装HEX-Editor插件
- GET 请求能传图片吗?
- idea无法正常显示配置文件图标
- truffle填坑指南:truffle unbox react项目npm run start启动失败
- Android Window悬浮窗窗口全屏(隐藏导航栏状态栏)
- 2022前端知识整理:十、vue基础