GPIO功能描述

目录

 

一、通用和复用功能I/O(GPIO和AFIO)

二、GPIO功能描述

2.1、简述

2.2、I/O端口位基本结构图

2.3、通用和复用功能I/O

2.3.1、V DD_FT 对5伏容忍I/O脚是特殊的,它与VDD不同

三、通用I/O(GPIO)

3.1、单独的位设置或位清除

3.2、  外部中断/ 唤醒线

3.4、复用功能(AF)

3.4.1、使用默认复用功能前必须对端口位配置寄存器编程。

3.4.2、配置成浮空输入模式。

3.5、软件重新映射I/O

3.6、GPIO锁定机制

3.7、输入配置

3.7.1、当I/O端口配置为输入时:

3.7.2、通用和复用功能I/O  

3.8、输出配置

3.9、复用功能配置

3.10、模拟输入配置

3.11、外设的GPIO配置


一、通用和复用功能I/O(GPIO和AFIO)

  • GPIO:通用型输入输出。
  • AFIO:复用型输入输出。
  • 小容量产品:指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。
  • 中容量产品:指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。
  • 大容量产品:指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。
  • 互联型产品:指STM32F105xx和STM32F107xx微控制器。

二、GPIO功能描述

2.1、简述

每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL、GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR).

根据数据手册中列出的每个I/O端口的特定硬件特征, GPIO端口的每个位可以由软件分别配置成多种模式。

  • ─  输入浮空
  • ─  输入上拉
  • ─  输入下拉
  • ─  模拟输入
  • ─  开漏输出
  • ─  推挽式输出
  • ─  推挽式复用功能
  • ─  开漏复用功能

每个I/O端口位可以自由编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改访问之间产生IRQ时不会发生危险。

2.2、I/O端口位基本结构图

2.3、通用和复用功能I/O

2.3.1、V DD_FT 对5伏容忍I/O脚是特殊的,它与VDD不同

三、通用I/O(GPIO)

复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式(CNFx[1:0]=01b,MODEx[1:0]=00b)。复位后,JTAG引脚被置于输入上拉或下拉模式:

  •  PA15:JTDI置于上拉模式。
  •  PA14:JTCK置于下拉模式。
  •  PA13:JTMS置于上拉模式。
  • PB4: JNTRST置于上拉模式。

通用和复用功能I/O  当作为输出配置时,写到输出数据寄存器上的值(GPIOx_ODR)输出到相应的I/O引脚。可以以推挽模式或开漏模式(当输出0时,只有N-MOS被打开)使用输出驱动器。输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,它们可以被激活也可以被断开。

3.1、单独的位设置或位清除

当对GPIOx_ODR的个别位编程时,软件不需要禁止中断:在单次APB2写操作里,可以只更改
一个或多个位。
这是通过对“置位/复位寄存器”(GPIOx_BSRR,复位是 GPIOx_BRR)中想要更改的位写’1’来
实现的。没被选择的位将不被更改。


3.2、  外部中断/ 唤醒线


所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。

3.4、复用功能(AF)

3.4.1、使用默认复用功能前必须对端口位配置寄存器编程


● 对于复用的输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入引脚必须由外部驱
注意: 也可以通过软件来模拟复用功能输入引脚,这种模拟可以通过对 GPIO 控制器编程来实现。此时,端口应当被设置为复用功能输出模式。显然,这时相应的引脚不再由外部驱动,而是通过GPIO 控制器由软件来驱动。
● 对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。
● 对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被


3.4.2、配置成浮空输入模式。

 

  • 如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。
  • 如果软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。

3.5、软件重新映射I/O

为了使不同器件封装的外设I/O功能的数量达到最优,可以把一些复用功能重新映射到其他一些脚上。这可以通过软件配置相应的寄存器来完成(参考AFIO寄存器描述)。这时,复用功能就不再映射到它们的原始引脚上了。

3.6、GPIO锁定机制

锁定机制允许冻结IO配置。当在一个端口位上执行了锁定(LOCK)程序,在下一次复位之前,将不能再更改端口位的配置。

3.7、输入配置

3.7.1、当I/O端口配置为输入时:


● 输出缓冲器被禁止。
● 施密特触发输入被激活。
● 根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接。
● 出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器。
● 对输入数据寄存器的读访问可得到I/O状态。

3.7.2、通用和复用功能I/O  

 

下图给出了I/O端口位的输入配置
图  输入浮空/上拉/下拉配置

 V DD_FT 对5伏容忍I/O脚是特殊的,它与V DD 不同

3.8、输出配置

当I/O端口被配置为输出时 :
● 输出缓冲器被激活
─  开漏模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将端口置于高阻状态(P-
MOS从不被激活)。
─  推挽模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将激活P-MOS。
● 施密特触发输入被激活
● 弱上拉和下拉电阻被禁止
● 出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器
● 在开漏模式时,对输入数据寄存器的读访问可得到I/O状态
● 在推挽式模式时,对输出数据寄存器的读访问得到最后一次写的值。
下图给出了I/O端口位的输出配置。

3.9、复用功能配置

当I/O端口被配置为复用功能时
● 在开漏或推挽式配置中,输出缓冲器被打开。
● 内置外设的信号驱动输出缓冲器(复用功能输出)。
● 施密特触发输入被激活。
● 弱上拉和下拉电阻被禁止。
● 在每个APB2时钟周期,出现在I/O脚上的数据被采样到输入数据寄存器。
● 开漏模式时,读输入数据寄存器时可得到I/O口状态。
● 在推挽模式时,读输出数据寄存器时可得到最后一次写的值。
8.4节-AFIO寄存器描述。  下图示出了I/O端口位的复用功能配置。详见一组复用功能I/O寄存器允许用户把一些复用功能重新映象到不同的引脚。
  复用功能配置

3.10、模拟输入配置

当I/O端口被配置为模拟输入配置时:
● 输出缓冲器被禁止;
● 禁止施密特触发输入,实现了每个模拟I/O引脚上的零消耗。施密特触发输出值被强置为’0’;
● 弱上拉和下拉电阻被禁止;
● 读取输入数据寄存器时数值为’0’。
下图示出了I/O端口位的高阻抗模拟输入配置

3.11、外设的GPIO配置

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭日初扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值