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

STM32的GPIO的八种工作模式

GPIO八种工作模式的简介

GPIO八种工作模式特点及应用
输入浮空输入用,完全浮空,状态不定
输入上拉输入用,用内部上拉,默认是高电平
输入下拉输入用,用内部下拉,默认是低电平
模拟功能ADC,DAC
开漏输出软件IIC的SDA、SCL等
推挽输出驱动能力强,25mA(max), 通用输出
开漏式复用功能片上外设功能(硬件IIC的SDA、SCL)
推挽复用功能片上外设功能(SPI的SCK、MISO、MOSI、CS)

输入浮空

  1. 上拉/下拉电阻为断开状态
  2. 施密特触发器打开
  3. 输出被禁止
  4. 输入浮空模式下,IO口的电平完全是由外部电路决定。如果IO引脚没有连接其他的设备,那么检测其输入电平是不确定的。该模式可以用于按键检测,RX1等。
    在这里插入图片描述

输入上拉

  1. 上拉电阻导通,
  2. 施密特触发器打开,
  3. 输出被禁止。
  4. 在需要外部上拉电阻的时候,可以使用内部上拉电阻,这样可以节省一个外部电阻,但是内部上拉电阻的阻值较大,
    所以只是“弱上拉”,不适合做电流型驱动.
  5. 如果外部输入高电平,则输入寄存器读取到的值为1,如果外部输入低电平,则输入寄存器读取的值为0。
  6. 如果外部处于空闲状态(高阻状态),则由于上拉电阻导通,则默认为高电平,则输入寄存器读取的值为1.

在这里插入图片描述

输入下拉

  1. 下拉电阻导通
  2. 施密特触发器打开,
  3. 输出被禁止。
  4. 在需要外部下拉电阻的时候,可以使用内部下拉电阻,这样可以节省一个外部电阻,但是内部下拉电阻的阻值较大,
    所以不适合做电流型驱动。
  5. 如果外部输入高电平,则输入寄存器读取到的值为1,如果外部输入低电平,则输入寄存器读取的值为0。
  6. 如果外部处于空闲状态(高阻状态),则由于下拉电阻导通,则默认为低电平,则输入寄存器读取的值为0.
    在这里插入图片描述

模拟输入

  1. 上下拉电阻断开
  2. 施密特触发器关闭
  3. 双 MOS管也关闭
  4. 该模式用于 ADC采集或者 DAC 输出,或者低功耗下省电。
    在这里插入图片描述

开漏输出

  1. 施密特触发器打开,即IO的输入功能是打开的,输入寄存器可以读取输出的电压是高还是低
  2. 开漏模式下,P-MOS 管是一直截止的,所以 P-MOS 管的栅极一直接 VSS。如果输出数据寄存器设置为 0 时,经过“输出控制”的逻辑非操作后,输出逻辑 1 到 N-MOS 管的栅极,这时 N-MOS 管就会导通,使得 I/O 引脚接到 VSS,即输出低电平。如果输出数据寄存器设置为 1时,经过“输出控制器”的逻辑非操作后,输出逻辑 0到 NMOS 管的栅极,这时 N-MOS 管就会截止。因为 P-MOS 管是一直截止的,使得 I/O 引脚呈现高阻态,即不输出低电平,也不输出高电平。因此要 I/O 引脚输出高电平就必须接上拉电阻。这时可以接内部上拉电阻,或者接一个外部上拉电阻。由于内部上拉电阻的阻值较大,所以只是“弱上拉”。需要大电流驱动,请接外部的上拉电阻。此外,上拉电阻具有线与特性,即如果有很多开漏模式的引脚连在一起的时候,只有当所有引脚都输出高阻态,电平才为 1,只要有其中一个为低电平时,就等于接地,使得整条线路都为低电平0。我们的IIC通信(IIC_SDA)就用到这个原理。
  3. 对第三点的总结,其特点是:P-MOS管始终不导通,N-MOS管只能输出低电平,如果需要输出高电平,则需要上拉电阻。
    在这里插入图片描述

开漏复用功能

  1. 施密特触发器打开,即IO的输入功能是打开的,输入寄存器可以读取输出的电压是高还是低
  2. P-MOS管始终不导通
  3. 其输出由其他外设控制,而不是由输出寄存器控制
  4. 特点:只能输出低电平,如果要输出高电平,则需要内部(外部)上拉电阻。
    在这里插入图片描述

推挽输出

  1. 施密特触发器打开,即IO的输入功能是打开的,输入寄存器可以读取输出的电压是高还是低
  2. 往输出寄存器写0,则N-MOS导通,输出低电平
  3. 往输出寄存器写1,则P-MOS导通,输出高电平
  4. 由于推挽输出模式输出高电平时,是直接连接 VDD ,所以驱动能力较强,可以做电流型
    驱动,驱动电流最大可达 25mA。该模式也是最常用的输出模式。

在这里插入图片描述

推挽复用功能

  1. 施密特触发器打开,即IO的输入功能是打开的,输入寄存器可以读取输出的电压是高还是低
  2. 由其他外设来控制电平输出。
  3. 可以输出高电平,也可以输出低电平
  4. 驱动能力强

在这里插入图片描述


http://www.kler.cn/a/316685.html

相关文章:

  • 【mysql的当前读和快照读】
  • java的JJWT 0.91在jdk21中报错的解决方法
  • 【AutoGen 】简介
  • docker构建jdk11
  • OceanStor Pacific系列 8.1.0 功能架构
  • elementui el-table中给表头 el-table-column 加一个鼠标移入提示说明
  • 计算机毕业设计 奖学金评定管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 牛客周赛 Round 60(思维、逆元、组合数、概率DP)
  • 箭头与数字识别系统源码分享
  • STM32F407单片机编程入门(十六) DMA详解及ADC-DMA方式采集含源码
  • 『功能项目』主角属性值显示【75】
  • html+css+js网页设计 旅游 穷游10个页面
  • 【Qt笔记】QTabWidget控件详解
  • 828华为云征文 | 云服务器Flexus X实例,搭建MC我的世界服务器
  • 力扣773:滑动谜题
  • K8s Calico替换为Cilium,以及安装Cilium过程
  • 进阶SpringBoot之集合 Redis
  • html/css怎么禁用浏览器自动填写
  • 使用 Nginx 搭建 Webdav 服务
  • 安全通信网络等保
  • Android OpenGLES2.0开发(二):环境搭建
  • 付费电表系统的通用功能和应用过程参考模型(中)
  • GPT1-GPT3论文理解
  • 关于wordPress中的用户登录注册等问题
  • MySQL函数介绍--日期与时间函数(二)
  • react hooks--useMemo