stm32 FT管脚GPIO开漏输出接5V, 不是输出5V

本文详细介绍了STM32微控制器中GPIO引脚的8种通用IO模式及其应用场景,包括浮空输入、上拉输入等,并解释了如何通过配置实现5V输出。此外,还概述了IO外部中断/事件控制器EXTI的工作原理及其配置方法。

一、GPIO引脚 8 种通用 IO 模式

Ref:STM32外部上拉实现5V输出(详细实现)_stm32 5v-优快云博客

在实验中遇到问题是开漏的IO口上拉电平到不了5v,经过一番查阅资料,发现只有 FT 管脚配置成开漏并且接5v上拉电平,才能达到5v,在数据手册上有详细说明。

在STM32中选用IO模式

(1) 浮空输入GPIO_Mode_IN_FLOATING——浮空输入,不确定外部输出是高电平还是低电平,尽量是浮空输入即可(浮空输入缺点:当引脚悬空时,没有默认的电平,输入会受到噪声干扰,来回不断地跳变),可以做 KEY识别,RX1
(2)上拉输入GPIO_Mode_IPU——IO内部上拉电阻输入,与外部模块输出保持一致,其中默认高电平即上拉输入是默认的状态   如:KEY按键让灯亮
(3)下拉输入GPIO_Mode_IPD—— IO内部下拉电阻输入,与外部模块输出保持一致
(4) 模拟输入GPIO_Mode_AIN ——应用 ADC模拟输入,或者 低功耗下省电


(5)开漏输出GPIO_Mode_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。
(6)推挽输出GPIO_Mode_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的,如:LED灯
(7)复用功能的推挽输出GPIO_Mode_AF_PP ——片内外设功能(I2C的SCL,SDA)
(8)复用功能的开漏输出GPIO_Mode_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)

 补充参考:

STM32IO口的八种工作模式超详细解析_RZA的博客-优快云博客

[Day 7]-【STM32系列】淺入淺出之 General Purpose Input/Output 介紹 (上) - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

 二、IO外部中断/事件控制器EXTI

 EXTI(External interrupt/event controller)—外部中断/事件控制器,管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。

Refer:明解STM32—GPIO应用设计篇之IO外部中断EXTI原理及使用方法 - 知乎 (zhihu.com)

### STM32 GPIO 输出 5V 配置方法及注意事项 #### 输出模式配置 为了使STM32GPIO引脚能够输出5V电平,需采用输出模式。在此模式下,当数据寄存器相应位设为0时,N-MOS管导通,I/O引脚地(VSS),此时输出低电平;而当数据寄存器相应位置1时,N-MOS管断,形成高阻状态[^4]。 #### 上拉电阻连 为了让引脚达到5V逻辑电平,在外部应入一个上拉电阻至5V电源。这样,在高阻状态下(I/O引脚不主动提供电流),由于上拉电阻的存在,引脚电压会被拉到5V水平。 #### VDD_FT兼容性确认 值得注意的是,并不是所有的STM32型号都能支持这种操作。具体来说,VDD_IO引脚需要具备5V耐受能力(即带有FT标识)才能安全地工作于上述条件下。这可以从器件的数据表中查证是否有“FT”标记来判断其是否适合此类应用[^2]。 #### 寄存器设置示例 下面给出一段C语言代码片段用于展示如何通过编程方式将指定的GPIO引脚配置成所需的输出模式: ```c // 假定使用HAL库进行发 void Configure_GPIO_for_5V_Output(void){ __HAL_RCC_GPIOA_CLK_ENABLE(); // 启用GPIOA时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; /* 设置PA0为输出 */ GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; // 输出模式 GPIO_InitStruct.Pull = GPIO_NOPULL; // 不带内部上下拉 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOA,&GPIO_InitStruct); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值