GPIO的8种工作模式

一、8种工作模式

二、IO端口的基本结构

        下面是一张F1的IO的结构图。

        圆圈 2是芯片内部的上下拉电阻, 输入数据寄存器简称IDR ,cpu读IDR就可以知道外面的是高电平还是低电平,单片机IO口输出的高低电平主要依靠P-MOS和N-MOS,输出数据寄存器简称ODR,位设置清除寄存器BSRR

        如果IO输入5V电压,VDD为3.3V,VSS为0V,圆圈1部分的上半部分通路,下半部分不同路,上半部分就会因为电流过大烧掉保护二极管,-5V同理,保护二极管的能力比较弱,不能过多依赖。

 施密特触发器

        施密特触发器就是一种整形电路,可以将非标准方波,整形成方波。

        特点: 当输入电压高于正向阈值电压,输出为高; 当输入电压低于负向阈值电压,输出为低; 当输入在正负向阈值电压之间,输出不改。

 P-MOS和N-MOS

        MOS管是压控型元件,通过控制栅源电压( Vgs )来实现导通或关闭。

         G:栅极,S:源极,D:漏极

        P-MOS: VGS<0 导通,N-MOS: VGS>0 导通

三、4种输入模式

输入浮空

        上下拉电阻关闭,施密特触发器打开,双mos管关闭,路线如红笔所示。

        特点:空闲时,IO状态不确定,由外部环境决定。3.3V时数据寄存器IDR为1,0V时数据寄存器IDR为0。

输入上拉 

         上拉电阻打开,下拉电阻关闭,施密特触发器打开,双mos管关闭,路线如红笔所示。

        特点:空闲时,IO状态为高电平。3.3V时数据寄存器IDR为1,0V时数据寄存器IDR为0。

输入下拉 

       上拉电阻关闭,下拉电阻打开,施密特触发器打开,双mos管关闭,路线如红笔所示。

        特点:空闲时,IO状态为低电平。3.3V时数据寄存器IDR为1,0V时数据寄存器IDR为0。

模拟功能

        上拉电阻关闭,下拉电阻关闭,施密特触发器关闭,双mos管关闭,路线如红笔所示。

        特点:专门用于模拟信号的输入和输出。 

四、4种输出模式

开漏输出

        上拉电阻关闭,下拉电阻关闭,施密特触发器打开,P-MOS始终不导通,往输出数据寄存器ODR位写0,N-MOS导通,写1,N-MOS不导通,路线如红笔所示。

        特点:这种模式可以读IO输入引脚的高低电平,不能输出高电平,必须有外部上拉才能输出高电平。 

开漏式复用功能

        上拉电阻关闭,下拉电阻关闭,施密特触发器打开,P-MOS始终不导通路线如红笔所示。

        特点:这种模式可以读IO输入引脚的高低电平,不能输出高电平,必须有外部上拉才能输出高电平,由其他外设控制输出。

推挽输出

 

        上拉电阻关闭,下拉电阻关闭,施密特触发器打开,往输出数据寄存器ODR位写0,N-MOS导通,写1,N-MOS不导通,路线如红笔所示。

        特点:这种模式可以读IO输入引脚的高低电平,这种模式可以输出高低电平,驱动能力强。 

 推挽式复用功能

        上拉电阻关闭,下拉电阻关闭,施密特触发器打开0。

        特点:这种模式可以读IO输入引脚的高低电平,这种模式可以输出高低电平,驱动能力强,由其他外设控制输出。        

小结

        希望大家掌握这8种工作模式,在后期进行配置的时候非常重要。

相关推荐

  1. STM32 单片机 GPIO 工作模式是什么?

    2024-01-28 11:18:01       12 阅读
  2. k8s学习--kube-proxy工作模式详细解释

    2024-01-28 11:18:01       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-28 11:18:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-28 11:18:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-28 11:18:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-28 11:18:01       20 阅读

热门阅读

  1. org.springframework.util.StringUtils 下StringUtils工具类

    2024-01-28 11:18:01       23 阅读
  2. uniapp-app使用富文本编辑器editor

    2024-01-28 11:18:01       32 阅读
  3. RUST笔记: 动态链接库的创建和使用

    2024-01-28 11:18:01       41 阅读
  4. Springboot多数据源连接

    2024-01-28 11:18:01       42 阅读
  5. ValueConverters.NET

    2024-01-28 11:18:01       34 阅读
  6. 初识Cargo-Rust的包管理器

    2024-01-28 11:18:01       37 阅读