stm32引脚功能

一、输入模式

  1. 模拟输入模式

    • 功能: 将引脚直接连接到片上的ADC(模数转换器)或DAC(数模转换器,如果支持)模块。

    • 特点:

      • 禁止施密特触发器(数字输入缓冲器被关闭),避免引入数字噪声。

      • 禁止上拉和下拉电阻。

      • 引脚状态不能被CPU读取(读取IDR寄存器为0)。

      • 引脚电平由外部模拟信号直接决定。

    • 典型应用: 连接模拟传感器(温度、光照、电压、电流等)到ADC进行采样。

  2. 浮空输入模式

    • 功能: 引脚作为纯数字输入。

    • 特点:

      • 施密特触发器开启。

      • 内部上拉或下拉电阻连接。

      • 引脚状态完全由外部电路决定(高电平、低电平或悬空)。

      • CPU可以读取IDR寄存器获取引脚当前电平状态。

    • 注意事项: 如果外部信号源是高阻抗(如开路集电极/漏极输出)或引脚可能悬空,强烈建议在外部添加确定电平的上拉或下拉电阻,否则引脚电平可能漂移不定,导致逻辑错误或额外功耗。

    • 典型应用: 连接有确定驱动能力(推挽输出)的数字信号源(如另一个MCU的GPIO),或者外部已接上拉/下拉电阻的情况。

  3. 上拉输入模式

    • 功能: 引脚作为数字输入,内部上拉电阻被使能。

    • 特点:

      • 施密特触发器开启。

      • 内部上拉电阻(典型值约30kΩ - 50kΩ,具体查阅芯片数据手册)连接到VDD。

      • 当外部无驱动或驱动为高阻态时,引脚被内部电阻拉至高电平。

      • CPU可以读取IDR寄存器获取引脚当前电平状态(外部驱动优先于内部上拉)。

    • 典型应用: 连接按键(按键另一端接地),当按键未按下时,内部上拉确保输入为高电平;按下时被拉低。简化电路,无需外部上拉电阻。

  4. 下拉输入模式

    • 功能: 引脚作为数字输入,内部下拉电阻被使能。

    • 特点:

      • 施密特触发器开启。

      • 内部下拉电阻(典型值约30kΩ - 50kΩ)连接到VSS/GND。

      • 当外部无驱动或驱动为高阻态时,引脚被内部电阻拉至低电平。

      • CPU可以读取IDR寄存器获取引脚当前电平状态(外部驱动优先于内部下拉)。

    • 典型应用: 连接按键(按键另一端接VDD),当按键未按下时,内部下拉确保输入为低电平;按下时被拉高。简化电路,无需外部下拉电阻。

二、输出模式

  1. 开漏输出模式

    • 功能: 引脚作为数字输出。

    • 特点:

      • 输出驱动结构只包含一个连接到GND的N-MOSFET(开漏)。

      • 当CPU写入输出数据寄存器(ODR)为0时,N-MOSFET导通,引脚被强有力地拉低到GND

      • 当CPU写入ODR为1时,N-MOSFET关断,引脚呈现高阻态

      • 输出高电平的能力完全依赖外部上拉电阻连接到目标VOH电平(可以是VDD,也可以是不同的电压,如3.3V或5V系统)。

      • 施密特触发器输入是激活的(可同时读取引脚状态)。

      • 可以配置输出速度。

    • 优势:

      • 电平转换: 方便实现不同电压域逻辑的兼容(例如,STM32工作在3.3V,通过外部上拉到5V,即可与5V逻辑器件通信)。

      • 线与(Wire-AND): 多个开漏输出可以直接连在一起,通过一个公共上拉电阻实现“与”逻辑(任一输出拉低,总线即低)。

    • 典型应用: I2C总线(SDA, SCL),需要电平转换的场合,需要“线与”逻辑的总线。

  2. 推挽输出模式

    • 功能: 引脚作为数字输出。

    • 特点:

      • 输出驱动结构包含一个连接到VDD的P-MOSFET和一个连接到GND的N-MOSFET(推挽对)。

      • 当CPU写入ODR为1时,P-MOSFET导通,N-MOSFET关断,引脚被强有力地拉高到VDD

      • 当CPU写入ODR为0时,P-MOSFET关断,N-MOSFET导通,引脚被强有力地拉低到GND

      • 输出高低电平均有很强的驱动能力(电流吸收和输出能力,具体值看数据手册)。

      • 施密特触发器输入是激活的(可同时读取引脚状态)。

      • 可以配置输出速度(低速、中速、高速、超高速)。

    • 优势: 驱动能力强,高低电平切换速度快。

    • 典型应用: 驱动LED、继电器、MOSFET栅极,高速数字信号(如SPI、USART的TX),通用数字输出。最常用的输出模式。

三、复用功能模式

  • 复用功能推挽 / 复用功能开漏

    • 功能: 将引脚的控制权交给某个片上外设(如USART, SPI, I2C, TIM, CAN, USB, ETH, SDIO等),而非CPU通过ODR寄存器直接控制。

    • 特点:

      • 输出方向:输出数据由外设模块产生,通过GPIO的复用功能输出通道送到引脚。输出结构配置为推挽开漏(选择哪个取决于外设要求和应用场景,例如I2C必须用开漏)。

      • 输入方向:输入到外设模块的数据直接从引脚通过GPIO的复用功能输入通道读取。

      • GPIO模块的ODR寄存器、输入数据寄存器(IDR)通常不再直接控制或反映外设数据(读取IDR可能仍能看到电平,但写ODR无效)。

      • 需要正确配置AFR(复用功能寄存器)选择具体哪个外设连接到该引脚。

      • 输入/输出特性(上拉/下拉、速度)的配置仍然由GPIO模块的配置寄存器(如PUPDR, OSPEEDR)决定,并且非常重要!例如,I2C作为复用开漏输出时,通常需要使能上拉电阻(或外部上拉)。

    • 本质: 是GPIO引脚在输出模式(推挽或开漏) 或输入模式的基础上,将数据通路切换到了片上外设。

    • 典型应用: 所有使用片上外设需要特定引脚功能的场合。例如:

      • USART_TX -> 复用功能推挽输出

      • USART_RX -> 复用功能输入(通常是浮空或上拉,具体看连接)

      • I2C_SCL/SDA -> 复用功能开漏输出 (必须开漏!)

      • SPI_SCK/MOSI -> 复用功能推挽输出

      • SPI_MISO -> 复用功能输入

      • TIM_CHx (PWM输出) -> 复用功能推挽输出

四、重要补充与注意事项

  1. 配置寄存器: 模式的选择通过GPIO端口配置寄存器(GPIOx_MODER)进行设置(2位模式字段)。具体模式(推挽/开漏、上拉/下拉/无)、速度、复用功能选择则由其他相关寄存器(GPIOx_OTYPERGPIOx_OSPEEDRGPIOx_PUPDRGPIOx_AFRLGPIOx_AFRH)配置。

  2. 输出速度 (GPIOx_OSPEEDR): 在输出模式(通用或复用)下,需要配置输出驱动器的速度(翻转速率)。速度越高,边沿越陡峭(开关速度越快),但功耗和EMI噪声也越大。应根据外设需求和走线长度选择合适的速度(如低速GPIO控制LED可选低速,高速SPI通信需选高速或超高速)。

  3. 初始化顺序: 通常建议先配置所需模式和其他参数(上拉/下拉、速度、复用功能),最后再使能外设时钟(RCC_AHBxENR)或外设本身(如果外设控制输出使能)。

  4. 5V容忍(FT引脚): 只有标有"FT"(Five-volt Tolerant)或类似标识的引脚,在配置为输入模式(浮空、上拉、下拉)或开漏输出模式(且外部上拉到≤5V)时,才能安全地承受5V电压输入。配置为推挽输出模式时绝对不可输出高于VDD的电压到引脚!非FT引脚只能承受不超过VDD + 0.3V (通常最大3.6V) 的电压。

  5. 模拟输入模式特殊性: 在此模式下,数字输入缓冲器关闭,读取IDR为0,内部上下拉无效。务必确保外部信号在ADC允许的输入电压范围内。

  6. 复位状态: 大多数GPIO引脚在复位后默认处于模拟输入模式(高阻态),以避免在系统稳定前产生意外电流或冲突。部分特殊引脚(如调试接口、BOOT引脚)可能有不同的复位状态。

  7. 重映射/备用功能: 某些外设的信号可以映射到不同的引脚组上(通过AFR寄存器或专门的Remap寄存器)。这在引脚冲突或优化布局布线时非常有用。

你可能感兴趣的:(arm,arm开发,嵌入式硬件)