STM32F103——GPIO八种工作模式

这篇具有很好参考价值的文章主要介绍了STM32F103——GPIO八种工作模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、GPIO 基本结构分析

2、GPIO 八种工作模式

2.1 输入浮空 

2.2 输入上拉

2.3 输入下拉

2.4 模拟功能

2.5 开漏输出

2.6 开漏式复用功能

2.7 推挽输出

2.8 推挽式复用功能

3、GPIO 八种工作模式特点及应用 


1、GPIO 基本结构分析

STM32F103的 GPIO 工作有八种模式,但是具体这些模式是怎么实现的?下面我们通过 GPIO 的基本结构图来分别进行详细分析,总的框图如下:

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

如上图所示,可以看到右边只有 I/O 引脚, I/O 引脚就是我们可以看到芯片实物的引脚其他部分都是 GPIO 的内部结构。

 ① 保护二极管

保护二极管共有两个,用于保护引脚外部过高或过低的电压输入。当引脚输入电压高于VDD 时,上面的二极管导通,当引脚输入电压低于 VSS 时,下面的二极管导通,从而使输入芯片内部的电压处于比较稳定的值。虽然有二极管的保护,但这样的保护却很有限,大电压大电流的接入很容易烧坏芯片。所以在实际的设计中我们要考虑设计引脚的保护电路。

上拉、下拉电阻

它们阻值大概在 30~50K 欧之间,可以通过上、下两个对应的开关控制,这两个开关由寄存器控制。当引脚外部的器件没有干扰引脚的电压时,即没有外部的上、下拉电压,引脚的电平由引脚内部上、下拉决定,开启内部上拉电阻工作,引脚电平为高;开启内部下拉电阻工作,则引脚电平为低。同样,如果内部上、下拉电阻都不开启,这种情况就是我们所说的浮空模式。浮空模式下,引脚的电平是不可确定的。引脚的电平可以由外部的上、下拉电平决定。需要注意的是,STM32 的内部上拉是一种“弱上拉”,这样的上拉电流很弱,如果有要求大电流还是得外部上拉。

施密特触发器

对于标准施密特触发器,当输入电压高于正向阈值电压,输出为高;当输入电压低于负向阈值电压,输出为低;当输入在正负向阈值电压之间,输出不改变,也就是说输出由高电准位翻转为低电准位,或是由低电准位翻转为高电准位对应的阈值电压是不同的。只有当输入电压发生足够的变化时,输出才会变化,因此将这种元件命名为触发器。这种双阈值动作被称为迟滞现象,表明施密特触发器有记忆性。从本质上来说,施密特触发器是一种双稳态多谐振荡器。

施密特触发器可作为波形整形电路,能将模拟信号波形整形为数字电路能够处理的方波波形,而且由于施密特触发器具有滞回特性,所以可用于抗干扰,以及在闭回路正回授/负回授配置中用于实现多谐振荡器。

特点:当输入电压高于正向阈值电压,输出为高;当输入电压低于负向阈值电压,输出为低;当输入在正负向阈值电压之间,输出不改变。作用:整形!如正弦波转方波;如下正弦转方波图:

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

 ④ P-MOS 管和 N-MOS 管

这个结构控制 GPIO 的开漏输出和推挽输出两种模式。开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。推挽输出:这两只对称的 MOS 管每次只有一只导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载拉电流。推拉式输出既能提高电路的负载能力,又能提高开关速度。

2、GPIO 八种工作模式

上面我们对 GPIO 的基本结构图中的关键器件做了介绍,下面分别介绍 GPIO 八种工作模式对应结构图的工作情况。

2.1 输入浮空 

输入浮空模式:

上拉/下拉电阻为断开状态。

②施密特触发器打开。

③双MOS管不导通,输出被禁止。

输入浮空模式下,IO 口的电平完全是由外部电路决定。如果 IO 引脚没有连接其他的设备,那么检测其输入电平是不确定的。也就是常说的高阻抗状态,高阻态可以理解成外部没有接任何东西的时候。该模式可以用于按键检测等场景。

特点:空闲时,IO状态不确定,由外部环境决定。

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

2.2 输入上拉

输入上拉模式:

①上拉电阻导通。

②下拉电阻关闭。

③施密特触发器打开。

④双MOS管不导通,输出被禁止。

在需要外部上拉电阻的时候,可以使用内部上拉电阻,这样可以节省一个外部电阻,但是内部上拉电阻的阻值较大,所以只是“弱上拉”,不适合做电流型驱动。

特点:空闲时,IO呈现高电平。

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

2.3 输入下拉

输入下拉模式:

①上拉电阻关闭。

②下拉电阻导通。

③施密特触发器打开。

④双MOS管不导通,输出被禁止。

在需要外部下拉电阻的时候,可以使用内部下拉电阻,这样可以节省一个外部电阻,但是内部下拉电阻的阻值较大,所以只是“弱下拉”,所以不适合做电流型驱动。

特点:空闲时,IO呈现低电平。

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

2.4 模拟功能

模拟功能:

①上下拉电阻关闭。

②施密特触发器关闭。

③双 MOS 管也关闭。

其他外设可以通过模拟通道输入输出。该模式下需要用到芯片内部的模拟电路单元,用于 ADC、DAC、MCO这类操作模拟信号的外设。

特点:专门用于模拟信号输入或输出,如:ADC和DAC。

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

2.5 开漏输出

开漏输出模式:

①上拉下拉电阻关闭。
②施密特触发器打开。
③P-MOS管始终不导通。
④往ODR对应位写0,N-MOS管导通,写1则N-MOS管不导通。

STM32 的开漏输出模式是数字电路输出的一种,从结果上看它只能输出低电平 Vss 或者高阻态(电平不确定),常用于 IIC 通讯(IIC_SDA)或其它需要进行电平转换的场景。

开漏模式下,IO 工作如下:

①P-MOS 被“输出控制”控制在截止状态,因此 IO 的状态取决于 N-MOS 的导通状况;

②只有 N-MOS 还受控制于输出寄存器,“输出控制”对输入信号进行了逻辑非的操作;

③施密特触发器是工作的,即可以输入,且上下拉电阻都断开了,可以看成浮空输入;

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

在“输出控制”部分做了等效处理,上图中写入输出数据寄存器①的值怎么对应到 IO 引脚的输出状态②是所研究的。

开漏输出模式下 P-MOS 一直在截止状态,即不导通,所以 P-MOS 管的栅极相当于一直接 VDD。如果输出数据寄存器①的值为0,那么 IO 引脚的输出状态②为低电平,这是我们需要的控制逻辑,怎么做到的呢?是这样的,输出数据寄存器的逻辑 0 经过“输出控制”的取反操作后,输出逻辑 1 到 N-MOS 管的栅极,这时 N-MOS 管就会导通,使得 IO 引脚连接到 VSS,即输出低电平。如果输出数据寄存器的值为 1,经过“输出控制”的取反操作后,输出逻辑 0 到 N-MOS 管的栅极,这时 N-MOS 管就会截止。又因为 P-MOS管是一直截止的,使得 IO 引脚呈现高阻态,即不输出低电平,也不输出高电平。因此要 IO 引脚输出高电平就必须接上拉电阻。 又由于 F1 系列的开漏输出模式下,内部的上下拉电阻不可用,所以只能通过接芯片外部上拉电阻的方式,实现开漏输出模式下输出高电平。如果芯片外部不接上拉电阻,那么开漏输出模式下,IO 无法输出高电平。

在开漏输出模式下,施密特触发器是工作的,所以 IO 口引脚的电平状态会被采集到输入数据寄存器中,如果对输入数据寄存器进行读访问可以得到 IO 口的状态。也就是说开漏输出模式下,我们可以读取 IO 引脚状态。

特点:不能输出高电平,必须有外部(或内部)上拉才能输出高电平。

2.6 开漏式复用功能

开漏式复用功能:

①上拉电阻关闭。

②下拉电阻关闭。

③施密特触发器打开。

④ P-MOS管始终不导通。

一个 IO 口可以是通用的 IO 口功能,还可以是其他外设的特殊功能引脚,这就是 IO 口的复用功能。一个 IO 口可以是多个外设的功能引脚,我们需要选择作为其中一个外设的功能引脚。当选择复用功能时,引脚的状态是由对应的外设控制,而不是输出数据寄存器。除了复用功能外,其他的结构分析请参考开漏输出模式。另外在开漏式复用功能模式下,施密特触发器也是打开的,我们可以读取 IO 口的电平状态,同时外设可以读取 IO 口的信息。

特点:1、不能输出高电平,必须有外部(或内部)上拉才能输出高电平。2、由其他外设控制输出。

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

2.7 推挽输出

推挽输出模式:

①上拉电阻关闭。
②下拉电阻关闭。
③施密特触发器打开。
④往ODR对应位写0,N-MOS管导通,写1则P-MOS管导通。

STM32 的推挽输出模式,从结果上看它会输出低电平 VSS 或者高电平VDD。推挽输出跟开漏输出不同的是,推挽输出模式 P-MOS 管和 N-MOS 管都用上。同样地,我们根据参考手册推挽模式的输出描述,根据手册描述可以把“输出控制”简单地等效为一个非门,等效原理图如下:

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

如果输出数据寄存器①的值为 0,经过“输出控制”取反操作后,输出逻辑 1 到 P-MOS 管的栅极,这时 P-MOS 管就会截止,同时也会输出逻辑 1 到 N-MOS 管的栅极,这时 N-MOS 管就会导通,使得 IO 引脚接到 VSS,即输出低电平。
如果输出数据寄存器的值为 1 ,经过“输出控制”取反操作后,输出逻辑 0 到 N-MOS 管的栅极,这时 N-MOS 管就会截止,同时也会输出逻辑 0 到 P-MOS 管的栅极,这时 P-MOS 管就会导通,使得 IO 引脚接到 VDD,即输出高电平。

由上述可知,推挽输出模式下,P-MOS 管和 N-MOS 管同一时间只能有一个管是导通的。当 IO 引脚在做高低电平切换时,两个管子轮流导通,一个负责灌电流,一个负责拉电流,使其负载能力和开关速度都有较大的提高。

另外在推挽输出模式下,施密特触发器也是打开的,我们可以读取 IO 口的电平状态。
由于推挽输出模式下输出高电平时,是直接连接 VDD,所以驱动能力较强,可以做电流型驱动,驱动电流最大可达 25mA,但是芯片的总电流有限,所以并不建议这样用,最好还是使用芯片外部的电源。

特点:可输出高低电平,驱动能力强。

2.8 推挽式复用功能

推挽式复用功能:

①上拉电阻关闭。

②下拉电阻关闭。

③施密特触发器打开。

复用功能介绍请查看开漏式复用功能,结构分析请参考推挽输出模式,这里不再赘述。 

特点:1、可输出高低电平,  驱动能力强。2、由其他外设控制输出。
 

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机

3、GPIO 八种工作模式特点及应用 

STM32F103——GPIO八种工作模式,stm32,stm32,嵌入式硬件,单片机文章来源地址https://www.toymoban.com/news/detail-634870.html

到了这里,关于STM32F103——GPIO八种工作模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集

    上一篇:[嵌入式软件][启蒙篇][仿真平台] STM32F103实现LED、按键 学C语言时,使用的printf()函数,就是通过串口打印出来的。 跟外部器件通信,比如GPS模块、蓝牙模块、wifi模块; 两个开发板之间通信,制定私有协议。 PC电脑通信,使用上位机显示数据或控制下位机。 操作:打

    2024年01月22日
    浏览(71)
  • STM32F103引脚输入输出模式详解

    目录 一:输入模式 1.1:模拟输入 1.2: 浮空输入  1.3:上拉输入  1.4:下拉输入 1.5: 为什么没有复用输入配置模式  二:输出模式 2.1:推挽输出 2.2:开漏输出  2.3:复用推挽输出 2.4:复用开漏输出  1.1:模拟输入 模拟输入(GPIO_Mode_AIN):这种输入方式和浮空输入非常相

    2024年02月05日
    浏览(62)
  • STM32 GPIO的八种工作模式各有特点,适用于不同的应用场景

    学了挺久的单片机老是记不住每种模式的运用场景今天用通义千问总结了一下作为鞭策顺便记录一下 STM32 GPIO的八种工作模式各有特点,适用于不同的应用场景。以下是每种模式的简要描述及其对应的应用场景: 1. **GPIO_Mode_AIN** - **模拟输入**    - **应用场景**: 当GPIO引脚作为

    2024年04月11日
    浏览(86)
  • 【开篇】STM32F103C8T6 含义、命名规则、GPIO原理以及初始化(参考男神江科协,学习交流用)

    目录 目录 一,STM系列命名规则 二.引脚功能 三.电路以及寄存器 1.产品系列:         STM32代表意法半导体的Cortex-Mx系列内核(ARM)32位的MCU 2.产品类型: F-通用型,S-简单型,L-低功耗,H-高性能,AL-汽车应用低功耗型,AF-汽车应用通用型。 3.产品子系列: 103:ARM Cortex-M3内核

    2024年01月17日
    浏览(90)
  • stm32f103VET6和stm32f103c8t6有什么区别?

    我来终结下这个问题。 这两款单片机我都用过,其中无际单片机特训营其中一款wifi报警主机项目就是用了stm32f103c8t6。  stm32f103VET6和stm32f103c8t6都是STMicroelectronics公司推出基于ARM Cortex-M3内核的单片机。 它们在硬件规格和性能上存在一些差异,下面我详细讲解下它们的差异之处

    2024年02月15日
    浏览(65)
  • STM32F103学习笔记 | 4.STM32F103芯片介绍

    STM32F1入门学习将使用STM32F103C8T6开发板最小系统板。小R为什么选择它来入门呢?咳咳~首先,ST官方提供强大且易用的标准库函数,使得开发过程方便快捷;其次,网上的教程资料多也十分详细。所以呢,它对高校学生和广大初学者入门都是一个非常好的选择。 开发板的实物图

    2024年04月25日
    浏览(48)
  • STM32F103的中断

    CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。 CM3中每个中断通道都具备自己的8位中断优先级控制字节, 但STM32 并没有使用 CM3 内核的全部东西,STM32F103中只使用4位,高4位有效。 用于表达优先级的高4位又被分为组成

    2024年02月08日
    浏览(50)
  • STM32F103RC

    ·多参考手册 ·协议USART、I2C、SPI 嵌入式系统跟ARM处理器 嵌入式系统: 专用计算机系统,以应用为中心,软硬件可裁减 组成: 硬件:(MPU)微处理器、存储器、I/O接口、输入输出设备。 软件:Embedded RTOS、应用软件。 最小系统:微控制器(MCU)、微处理器(MPU)、电源模块、

    2024年02月12日
    浏览(54)
  • STM32 (三)GPIO的八种模式及其原理

    GPIO就是通用I/O(输入/输出)端口,是STM32可控制的引脚。 STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 1. 四种输入模式     GPIO_Mode_IN_FLOATING 浮空输入模式     GPIO_Mode_IPU 上拉输入模式     GPIO_Mode_IPD 下拉输入模式

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包