zoukankan      html  css  js  c++  java
  • STM32——GPIO口的八种工作模式

    GPIO的输入工作模式1——输入浮空模式:

    GPIO_Mode_IN_FLOATING =0x04

    Pasted Graphic.tiff

    工作原理:配置完相应寄存器为此工作模式后,高低电平信号通过1处的IO口输入进去,由于寄存器配置了的缘故VDD处上拉和下拉均为断开状态。通过TTL施密特触发器后进入到3(输入数据寄存器)中,然后由MCU将数据读取。

    适用场景:一般多用于外部按键输入;

    GPIO的输入工作模式2——输入上拉模式:

    GPIO_Mode_IPU =0x48

    Pasted Graphic 1.tiff

    工作原理:配置完相应寄存器为此工作模式后,高低电平信号通过1处的IO口输入进去,由于寄存器配置了的缘故VDD处上拉电阻(30K~50K)处于闭合状态。通过TTL施密特触发器后进入到3(输入数据寄存器)中,然后由MCU将数据读取。

    适用场景:

    GPIO的输入工作模式3——输入下拉模式:

    GPIO_Mode_IPD =0x28

    Pasted Graphic 2.tiff

    工作原理:配置完相应寄存器为此工作模式后,高低电平信号通过1处的IO口输入进去,由于寄存器配置了的缘故VSS处下拉电阻(       )处于闭合状态。通过TTL施密特触发器后进入到3(输入数据寄存器)中,然后由MCU将数据读取。

    适用场景:

    GPIO的输入工作模式4——输入模拟模式:

    GPIO_Mode_AIN =0x0

    Pasted Graphic 3.tiff

    工作原理:配置完相应寄存器为此工作模式后,模拟电压信号通过1处的IO口输入进去,由于寄存器配置了的缘故VDD处上拉和下拉电阻于断开状态。TTL施密特触发器也被关闭,一直将模拟电压信号输入至片上外设模块AD转换器,然后由MCU将数据读取。

    适用场景:应用ADC模拟输入;低功耗下省电

    GPIO的输出工作模式1——开漏输出模式:

    GPIO_Mode_Out_OD=0x14

    Pasted Graphic 4.tiff

    工作原理:配置完相应寄存器为此工作模式后,MCU将要发送的数据位设置/清除寄存器和输出数据寄存器将高低电平信号发送到输出控制电路中,当电平为0时输出控制电路向N-MOS管给出信号,N-MOS管导通,将IO口电平拉低,输出低电平;当电平为1时,MOS管截止,不向IO口给出高低电平信号,IO口此时电平信号由外部电路中的上拉电阻拉到电源电压。

    适用场景:

    1、这种方式适合在连接的外设电压比单片机电压低的时候

    2、一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连 接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功 能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以 改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。(上拉 电阻的阻值决定了逻辑电平转换的沿的速度 。阻值越大,速度越低功耗越小, 所以负载电阻的选择要兼顾功耗和速度。)

    GPIO的输出工作模式2——复用开漏输出模式:

    GPIO_Mode_AF_OD=0x1c

    Pasted Graphic 6.tiff

    工作原理: 理解为GPIO口被用作第二功能时的配置情况,工作原理类似于“开漏输出模式”,只是要输出的电平信号来源不是mcu,而是复用功能输出通道,比如片上外设模块。

    适用场景:

    GPIO的输出工作模式3——推挽输出模式:

    GPIO_Mode_Out_PP=0x10

    Pasted Graphic 7.tiff

    工作原理:配置完相应寄存器为此工作模式后,MCU将要发送的数据位设置/清除寄存器和输出数据寄存器将高低电平信号发送到输出控制电路中,当电平为0时输出控制电路向N-MOS管给出信号,N-MOS管导通,P-MOS管截止,将IO口电平拉低,输出低电平;当电平为1时,P-MOS管导通,N-MOS管截止,将IO口电平拉高,输出高电平,与此同时,IO口的高低电平状态可通过TTL施密特触发器后进入到3(输入数据寄存器)中,然后由MCU将IO口读取。

    适用场景:

    GPIO的输出工作模式3——复用推挽输出模式:

    GPIO_Mode_AF_PP=0x18

    Pasted Graphic 8.tiff

    工作原理:理解为GPIO口被用作第二功能时的配置情况,工作原理类似于“推挽输出模式”,只是要输出的电平信号来源不是mcu,而是复用功能输出通道,比如片上外设模块。

  • 相关阅读:
    时间序列算法(平稳时间序列模型,AR(p),MA(q),ARMA(p,q)模型和非平稳时间序列模型,ARIMA(p,d,q)模型)的模型以及需要的概念基础学习笔记梳理
    Python两步实现关联规则Apriori算法,参考机器学习实战,包括频繁项集的构建以及关联规则的挖掘
    基于逻辑回归的利用欠采样处理类别不平衡的信用卡欺诈检测
    利用sklearn对MNIST手写数据集开始一个简单的二分类判别器项目(在这个过程中学习关于模型性能的评价指标,如accuracy,precision,recall,混淆矩阵)
    利用Sklearn实现加州房产价格预测,学习运用机器学习的整个流程(包含很多细节注解)
    Javax虚拟机-常见的JVM工具
    Java虚拟机-虚拟机字节码执行引擎
    Java虚拟机-虚拟机类加载机制
    Java虚拟机-类文件结构
    Java虚拟机-内存分配策略
  • 原文地址:https://www.cnblogs.com/brianblog/p/7047576.html
Copyright © 2011-2022 走看看