STM32F103GPIO工作模式及原理

GPIO简介

GPIO,全称为通用输入输出端口,是STM32系列微控制器中的一个重要概念。STM32芯片的GPIO引脚可以被配置为输入模式或输出模式,实现与外部设备的通信、控制以及数据采集功能。

GPIO工作模式

输入模式

  1. 浮空输入
  2. 上拉输入
  3. 下拉输入
  4. 模拟输入

输出模式

  1. 开漏输出
  2. 推挽输出
  3. 推挽式复用功能
  4. 开漏式复用功能

输出速度

  • 2MHz
  • 10MHz
  • 50MHz

GPIO框图和电路解析

在这里插入图片描述

电路标识

  • VDD通常指的是正电源电压,即芯片的工作电压。它是为芯片内部逻辑电路提供电源的,使得芯片能够正常工作。
  • VSS通常指的是地线或0V参考电压。它是为芯片内部逻辑电路提供参考电压的,使得芯片内部逻辑能够正常工作。
  • VDD_FT 对5伏容忍I/O脚是特殊的,它与VDD不同

电路元件

  • 保护二极管:保护二极管的作用是防止引脚外部过高或过低的电压输入。当引脚电压高于VDD时,上方的二极管导通;当引脚电压低于VSS时,下方的二极管导通,从而保护芯片不受异常电压的损坏。 然而,尽管有二极管的保护,大电压和大电流的接入仍可能烧坏芯片。因此,在设计中应考虑引脚的保护电路,避免直接外接大功率驱动器件,如电机等。
  • 上下拉电阻:上下拉电阻的作用是将不确定的信号线确定为高电平或低电平,防止外界干扰。具体来说,当某个引脚不控制时,上下拉电阻可以将该引脚确定为高电平或低电
  • TTL肖特基触发器:TTL肖特基触发器是一种数字逻辑门电路,由两个或多个与非门组成。它的作用是将输入的模拟信号转换为数字信号,即当输入信号达到一定幅度时,触发器输出高电平,否则输出低电平。平。
  • P-MOS:P-MOS管通常与输出引脚相连,用于控制输出信号的电平状态。当输出信号为高电平时,P-MOS管导通,输出引脚通过P-MOS管连接到VDD,输出高电平。当输出信号为低电平时,P-MOS管截止,输出引脚通过N-MOS管接地,输出低电平。
  • N-MOS:N-MOS管通常与输出引脚相连,用于控制输出信号的电平状态。当输出信号为高电平时,N-MOS管截止,输出引脚通过P-MOS管连接到VDD,输出高电平。当输出信号为低电平时,N-MOS管导通,输出引脚接地,输出低电平。

GPIO工作模式电路解析

浮空输入

请添加图片描述

浮空输入,是指不接入上拉或下拉电阻,通过TTL肖特基触发器使得输入进来的电平数据更加稳定。在该模式下,引脚的电平状态完全取决于外部信号,当外部信号不接入时,引脚的电平状态不确定。这种模式一般用于按键检测之类的应用中。

上拉输入

请添加图片描述

上拉输入通过接入上拉电阻来读取引脚电平。当外部信号未接入时,引脚默认电平为高电平。

下拉输入

请添加图片描述

下拉输入通过接入下拉电阻来读取引脚电平。当外部信号未接入时,引脚默认电平为低电平。

模拟输入

请添加图片描述

开漏输出

请添加图片描述
在开漏输出模式下P-MOS不参与工作,控制输出0,N-MOS导通,此时为低电平,控制输出为1,N-MOS关闭,使得引脚既不输出高电平,也不输出低电平,有IO外部链接决定。

推挽输出

请添加图片描述
在推挽输出模式下,当内部信号为1时,上边的P-MOS管导通,下边的N-MOS管截止,IO口输出高电平。当内部信号为0时,上边的P-MOS管截止,下边的N-MOS管导通,IO口输出低电平。

推挽式复用功能

请添加图片描述
复用推挽输出模式下的IO不再受ODR控制,当外围电路产生低电平时,会导致IO口输出低电平;当外围电路产生高电平时,会导致IO口输出高电平。

开漏式复用功能

请添加图片描述
在复用开漏输出模式下,IO可以输出高低电平,但无法直接读取外部信号,该模式下的IO不再受ODR控制。由于开漏输出只能输出低电平,如果要输出高电平必须通过上拉电阻才能实现,因此上拉电阻的选择也会影响复用开漏输出的工作状态。

IO工作模式的选取

输入模式

浮空输入

  • 当外部电路中已经包含适当的下拉电阻时,可以选择浮空输入模式。如果连接的是一个开关,开关的另一端已经通过外部电阻连接到地,那么可以选择使用浮空输入模式。
  • 在某些模拟电路中,输入信号可以通过电阻分压器来模拟,当输入信号为0时,电阻分压器的输出电压为0V,相当于浮空输入模式。

注:需要注意的是,浮空输入模式并不常用,但在特定情况下,如模拟输入或低功耗下省电等场景中可能会使用到。在使用浮空输入模式时,应避免外部信号功率很小,否则可能会导致内部上拉电阻影响外部输入电平。因此,在选择使用浮空输入模式时需要根据实际情况进行评估和选择。
上拉输入

  • 上拉输入主要用于检测低电平的输入,并能在未输入时默认IO为高电平。这种模式适用于电路为低有效的元器件的情况(例如LED共阳极)。

下拉输入

  • 下拉输入主要用于检测高电平的输入,并能在未输入时默认IO为低电平。这种模式适用于电路为高有效的元器件的情况(例如LED共阴极)。

模拟输入

  • 当需要采集模拟量信号时,如电压、电流、温度等参数,模拟输入模块可以将这些信号采集到计算机中,并进行相应的处理。
    在自动化和信息化系统中,模拟输入模块可以应用于各种传感器和变送器的信号采集,实现数据采集和监控系统的集成。

输出模式

开漏输出

  • 多设备共享总线:开漏输出允许多个设备共享同一个总线或信号线,通过合理的电平控制,实现对总线或信号线的协调使用,避免冲突和干扰。
  • LED控制:开漏输出也常用于控制LED(Light-EmittingDiode)的亮灭。LED在工作时需要限流,以避免过电流损坏。通过使用开漏输出和外部限流电阻,可以有效控制LED的亮度和闪烁频率。
  • 输入/输出扩展:开漏输出可用于输入/输出(I/O)扩展。通过使用外部电阻和开漏输出组合,可以将一个GPIO(General Purpose
    Input/Output)引脚扩展为多个输入或输出引脚。
  • 推挽输出无法满足需求时:开漏输出和推挽输出在工作原理、上拉电阻、输出电流和应用场景上存在差异。例如,当需要直接驱动负载时,推挽输出更合适;而在多设备共享总线的场景中,开漏输出更为适合。

推挽输出

  • 当输出电平为0V和3.3V时,推挽输出模式是最佳选择。这是因为推挽输出可以输出高电平和低电平,并且不需要外部上拉或下拉电阻。
  • 在高速切换开关状态的应用中,推挽输出模式也是很好的选择。因为它既提高了电路的负载能力,也提高了开关速度。

推挽式复用功能

  • 当GPIO的引脚用作串口的输出时,可以使用复用推挽输出模式。这种模式可以提高电路的负载能力和开关速度,适用于高速切换开关状态的应用。

开漏式复用功能

  • 控制多个PWM信号:当需要控制多个PWM信号时,例如,当多个PWM信号由同一GPIO口输出,并且需要连接在一起时,可以使用复用开漏输出模式。
  • 复用其他外设功能:当GPIO口需要复用其他外设功能,例如I2C的SCL或SDA等,复用开漏输出模式可以方便地实现这些功能。
    多路输出连在一起:当需要将多个输出端口连在一起时,例如,控制多个LED或其他负载,复用开漏输出模式可以方便地实现。

有什么错误请及时指出🤝

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103系列中,配置GPIO口需要进行以下步骤: 1. 配置相GPIO口。如果需要进行重映射,可以使用GPIO_PinRemapConfig函数进行重映射。例如,使用GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE)来重映射USART2的引脚。然后,使用GPIO_InitStructure结构体来配置GPIO口的引脚和模式。例如,将Rx配置为浮空输入模式,Tx配置为带上拉的第二功能模式。最后,使用GPIO_Init函数进行初始化。\[1\]\[2\] 2. 每一组IO口都有以下7个寄存器,用于配置和控制GPIO口的功能: - GPIOx_CRL:端口配置低寄存器(32位) - GPIOx_CRH:端口配置高寄存器(32位) - GPIOx_IDR:端口输入寄存器(32位) - GPIOx_ODR:端口输出寄存器(32位) - GPIOx_BSRR:端口位设置/清除寄存器(32位) - GPIOx_BRR:端口位清除寄存器(16位) - GPIOx_LCKR:端口配置锁存寄存器(32位)(不常用)\[3\] 通过配置这些寄存器,可以实现对GPIO口的输入输出控制和配置。 #### 引用[.reference_title] - *1* *2* [STM32F103_USART_GPIO配置及相的IO口设置](https://blog.csdn.net/andrewgithub/article/details/54093412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32F103 GPIO口的配置和用详解](https://blog.csdn.net/weixin_43627022/article/details/103108920)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值