文章目录

一、GPIO中四个关键器件介绍

1.1、保护二极管

1.2、P-MOS管和N-MOS管

1.3、上拉电阻和下拉电阻

1.4、TTL肖特基触发器

二、GPIO的8种工作模式

2.1、模拟输入

2.2、浮空输入

2.3、下拉输入

2.4、上拉输入

2.5、开漏输出

2.6、推挽输出

2.7、复用开漏输出

2.8、复用推挽输出

三、推挽和开漏的总结

3.1、推挽结构和推挽电路

3.2、开漏知识

四、外设的GPIO配置

4.1、高级定时器TIM1/TIM8

4.2、通用定时器TIM2/3/4/5

4.3、USART

4.4、SPI

4.5、I2S

4.6、I2C

4.7、BxCAN

4.8、USB

4.9、全速USB OTG引脚配置

4.10、SDIO

4.11、ADC/DAC

4.12、FSMC

4.13、其它I/O功能


一、GPIO中四个关键器件介绍

图(1)

1.1、保护二极管

图(1)中①所示的为两个保护二极管。这两个保护二极管可以防止引脚外部过高或过低的电压输入,当引脚电压高于VDD时,上方的二极管导通,当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。尽管有这样的保护,并不意味着STM32的引脚能直接外接大功率驱动器件,如直接驱动电机,要么电机不转,要么导致芯片烧坏,必须要加大功率及隔离电路驱动。

1.2、P-MOS管和N-MOS管

图(1)中②所示的为 P-MOS 管和 N-MOS 管。GPIO引脚线路经过两个保护二极管后,向上流向“输入模式”结构,向下流向“输出模式”结构。在输出模式部分,线路经过一个由P-MOS和N-MOS管组成的单元电路。这个结构使GPIO具有了“推挽输出”和“开漏输出”两种模式,这两种模式下面会详细介绍。

1.3、上拉电阻和下拉电阻

图(1)中③所示的为上拉电阻和下拉电阻。其中VDD为I/O引脚和内部调压器(稳压)的电压,是设备的工作电压,STM32的数据手册为2.0v~3.6v,这里就当3.3V好了,无关紧要。VDD所连的电阻为上拉电阻,当开关打开时,其输出就是高电平。VSS为电路公共地端电压,一般接GND。VSS所连的电阻为下拉电阻,当开关打开时,其输出就是低电平。

1.4、TTL肖特基触发器

图(1)中④所示的为TTL肖特基触发器。信号经过触发器后,模拟信号转化为0和1的数字信号。但是,当GPIO引脚作为ADC采集电压的输入通道时,用其“模拟输入”功能,此时信号不再经过触发器进行TTL电平转换。ADC外设要采集到的原始的模拟信号。补充:当输入电压高于正向阈值电压,输出为高;当输入电压低于负向阈值电压,输出为低;当输入在正负向阈值电压之间,输出不改变。

二、GPIO的8种工作模式

GPIO Mode Description
GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_AF_OD 复用开漏输出
GPIO_Mode_AF_PP 复用推挽输出

2.1、模拟输入

图(2)

 模拟输入模式(GPIO_Mode_AIN)关闭了TTL肖基特触发器,不接上、下拉电阻,经由另一线路把电压信号传送到片上外设模块。如传送至ADC模块,由ADC采集电压信号。所以使用ADC外设的时候,必须设置为模拟输入模式。在模拟输入模式下,输出缓冲器被禁止,读取输入数据寄存器为0。             补充:类似地,当GPIO引脚用于DAC作为模拟电压输出通道时,此时作为“模拟输出”功能,DAC的模拟信号输出就不经过双MOS管结构,而是直接输出到引脚。

2.2、浮空输入

图(3)

浮空输入模式(GPIO_Mode_IN_FLOATING)在芯片内部既没有接上拉,也没有接下拉电阻,经由TTL肖基特触发器输入。配置成这个模式直接用电压表测量其引脚电压为1点几伏,这是个不确定值。由于其输入阻抗较大,一般把这种模式用于标准的通信协议如I2C、USART的接收端。在浮空输入模式下,输出缓冲器被禁止,出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对输入数据寄存器的读访问可得到I/O状态。

2.3、下拉输入

图(4)

下拉输入模式(GPIO_Mode_IPD),I/O端口的电平信号通过TTL肖基特触发器后,进入输入数据寄存器。在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在低电平;并且在I/O端口输入为高电平的时候,输入端的电平则为高电平。在下拉输入模式下,输出缓冲器被禁止,出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对输入数据寄存器的读访问可得到I/O状态。

2.4、上拉输入

图(5)

上拉输入模式(GPIO_Mode_IPU),I/O端口的电平信号通过TTL肖基特触发器后,进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在高电平;并且在I/O端口输入为低电平的时候,输入端的电平则为低电平。 在上拉输入模式下,输出缓冲器被禁止,出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对输入数据寄存器的读访问可得到I/O状态。

2.5、开漏输出

图(6)

开漏输出模式(GPIO_Mode_Out_OD),上方的P-MOS管完全不工作。如果我们控制输出为0,低电平,则P-MOS管关闭,N-MOS管导通,使输出接地,若控制输出为1(它无法直接输出高电平)时,则P-MOS管和N-MOS管都关闭,所以引脚既不输出高电平,也不输出低电平,为高阻态。正常使用时必须外部接上拉电阻,等效电路见图(7)。它具有“线与”特性,也就是说,若有很多个开漏模式引脚连接到一起时,只有当所有引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就相当于短路接地,使得整条线路都为低电平。在开漏输出模式下,施密特触发输入被激活,弱上拉和下拉电阻被禁止,出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对输入数据寄存器的读访问可得到I/O状态(注意:I/O端口的电平不一定是输出的电平)。

图(7) 开漏电路

2.6、推挽输出

图(8)

推挽输出模式(GPIO_Mode_Out_PP),是根据这两个MOS管的工作方式来命名的。在该结构中输入高电平时,经过反向后,上方的P-MOS导通,下方的N-MOS关闭,对外输出高电平;而在该结构中输入低电平时,经过反向后,N-MOS管导通,P-MOS关闭,对外输出低电平。当引脚高低电平切换时,两个MOS管轮流导通,P管负责灌电流,N管负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。推挽输出的低电平为0V,高电平为3.3V,推挽输出模式时的等效电路见图(9)。 在推挽输出模式下,施密特触发输入被激活,弱上拉和下拉电阻被禁止,出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器,对输出数据寄存器的读访问得到最后一次写的值(注意:此时I/O端口的电平一定是输出的电平)。

图(9) 推挽等效电路

2.7、复用开漏输出

图(10)

对于相应的复用模式,则是根据GPIO的复用功能来选择的,如果用在IC、SMBUS这些需要线与功能的复用场合,就使用复用开漏模式(GPIO_Mode_AF_OD)。

当I/O端口被配置为复用功能时:

  • 在开漏或推挽式配置中,输出缓冲器被打开
  • 内置外设的信号驱动输出缓冲器(复用功能输出)
  • TTL肖基特触发输入被激活
  • 弱上拉和下拉电阻被禁止
  • 在每个APB2时钟周期,出现在I/O脚上的数据被采样到输入数据寄存器
  • 开漏模式时,读输入数据寄存器时可得到I/O口状态
  • 在推挽模式时,读输出数据寄存器时可得到最后一次写的值

2.8、复用推挽输出

图(11)

GPIO的引脚用作串口的输出,则使用复用推挽输出模式(注:输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的)。

三、推挽和开漏的总结

3.1、推挽结构和推挽电路

推挽结构一般是指两个参数相同的三极管或MOS管分别受两互补信号的控制,总是在一个三极管或MOS管导通的时候另一个截止。高低电平由输出电平决定。

推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务。电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。

推挽输出模式一般应用在输出电平为0和3.3V而且需要高速切换开关状态的场合。在STM32的应用中,除了必须用开漏模式的场合,一般习惯使用推挽输出模式。

3.2、开漏知识

开漏输出只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极。适合于做电流型的驱动,其吸收电流的能力相对强(20mA以内)。

开漏输出一般应用在I2C、SMBUS通信等需要“线与”功能的总线电路中。除此之外,还用在电平不匹配的场合,如需要输出5V的高电平,就可以在外部接一个上拉电阻,上拉电源为5V,并且把GPIO设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出5V的电平,具体见图(12)。

图(12) 

四、外设的GPIO配置

4.1、高级定时器TIM1/TIM8

图(13)

4.2、通用定时器TIM2/3/4/5

图(14)

4.3、USART

图(15)

4.4、SPI

图(16)

4.5、I2S

图(17)

4.6、I2C

图(18)

4.7、BxCAN

图(19)

4.8、USB

图(20)

此图内容只适用于小容量、中容量和大容量产品

4.9、全速USB OTG引脚配置

图(21)

图(22)
  1. 此图内容只适用于互联型产品
  2. 如果另一个共享的外设要使用OTG_FS_VBUS引脚(PA9)或把它作为通用I/O口,必须激活PHY的断电模式(清除OTG_FS_GCCFG寄存器的位16)

4.10、SDIO

图(23)

4.11、ADC/DAC

图(24)

ADC输入引脚必须配置为模拟输入

4.12、FSMC

图(25)

4.13、其它I/O功能

图(26)

STM32-深入理解GPIO的8种工作模式相关推荐

  1. STM32中GPIO口八种工作模式简介及LED灯测试

    STM32中GPIO口八种工作模式简介及LED灯测试 一.GPIO口八种工作模式 二. LED灯测试 一.GPIO口八种工作模式 在STM32单片机里对于GPIO的配置种类有8种之多,包括4种输入模式 ...

  2. GPIO的八种工作模式

    一.GPIO的八种工作模式 1.上拉输入:IO口在无输入的情况下,保持高电平. 2.下拉输入:IO口在无输入的情况下,保持低电平. 3.浮空输入:浮空输入状态下,IO的电平状态是不确定的,完全由外部输 ...

  3. 休眠后gpio状态_STM32中GPIO的8种工作模式总结

    STM32 中 GPIO 的 8 种工作模式总结 一.推挽输出:可以输出高.低电平,连接数字器件 ; 推挽结构一般是指 两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一 个截止.高低 ...

  4. gpio的8种工作模式_Stm32之GPIO工作模式简介

    GPIO的8种工作模式 GPIO初始化结构体的时候,必须要配置合适的工作模式,这样才能使得IO口发挥应有的作用.工作模式大体上共分为输入输出两类,共8种,下面将介绍这8种工作模式. GPIO工作模式 ...

  5. STM32 GPIO的8种工作模式与应用场合

    1.GPIO的全称是General-purpose input/output,意为通用输入/输出接口,PIN脚依现实考量可选择通用输入模式(GPI)通用输出模式(GPO)以及通用输入输出模式(GPIO ...

  6. GPIO的8种工作模式——基于STM32F767IGT6

    对于STM32来说,GPIO有四种输入模式和四种输出模式,我们可以通过配置IO端口的相关寄存器来实现特定的效果: ps:M3系列只有输入模式有上/下拉,而M4/7系列输入/输出模式均有上/拉电阻: 浮 ...

  7. gpio的8种工作模式_【超低功耗系列一】STM32L 低功耗产品和模式

    大家知道意法半导体STM32产品中有四个系列,其中一个很重要的系列是超低功耗系列,今天我们就来聊一下STM32超低功耗系列产品. 意法半导体的超低功耗系列有非常优秀的低功耗表现,在EEMBC(嵌入式微 ...

  8. STM32中GPIO的8种工作模式

    一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定.形象点解释:推挽,就是有推有拉,任何 ...

  9. STM32中GPIO的8种工作模式!

    一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定.         推挽电路是两个参数 ...

最新文章

  1. linux 某个文件打不开了,linux操作系统下,exe文件为什么打不开?
  2. 实习的第一天——培训
  3. Linux下挂载存储设备
  4. STM32之CAN---工作/测试模式浅析
  5. Win10 IoT 10 中文显示乱码或报错的问题
  6. shell 替换字符串的几种方法,变量替换${},sed,awk
  7. A股开盘:深证区块链50指数涨0.91%,美邦服饰涨停
  8. cad卸载_解决CAD小白入门的第一个难题,三招任你选
  9. patch补丁文件制作 使用和常见问题
  10. 效率低下的不良习惯与解决办法
  11. 如何用阿里云服务器建立个人网站
  12. qq空间已删信息服务器,qq空间恢复已删除的说说方法
  13. 企业快速构建可落地的IT服务管理体系的五大关键点
  14. Idea报错: A JNI error has occurred
  15. SDN控制器 之南向网络控制技术
  16. STM32+IAP方案 实现网络升级应用固件
  17. 《人人都是架构师》总结
  18. 大三软件测试实习生面试经验-1
  19. java 印章 方_用Java实现支持圆形带五角星 方形电子印章
  20. 三星 s4(i9502) android4.4rom 官方,三星S4(I9500)刷机包 Android4.4 官方精简 稳定流畅 极速省电 完整root权限 V1.0...

热门文章

  1. Oracle 到 GP 部分函数转换
  2. 使用exe4j打包Java桌面程序为exe
  3. 中兴通讯提前批综合面试
  4. 在国内市场,外汇到底能不能做?外汇合法吗?
  5. 22.单文件组件-webpack打包发布
  6. java 内存模型JMM解析
  7. 系列 | 数仓实践第三篇NO.3『拉链表』
  8. 数论——唯一分解定理
  9. Vue3+ElementPlus网页端聊天|vue3.0仿微信/QQ界面实例
  10. iOS 诡异的崩溃EXC_BREAKPOINT (code=1, subcode=0x1c5691d2c)