1、STM32F1系列

1.1 GPIO功能描述

image.png
─ 输入浮空
─ 输入上拉
─ 输入下拉
─ 模拟输入
─ 开漏输出
─ 推挽式输出
─ 推挽式复用功能
─ 开漏复用功能
image.png
image.png
复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式(CNFx[1:0]=01b,
MODEx[1:0]=00b)。
复位后,JTAG引脚被置于输入上拉或下拉模式:
─ PA15:JTDI置于上拉模式
─ PA14:JTCK置于下拉模式
─ PA13:JTMS置于上拉模式
─ PB4: JNTRST置于上拉模式

1.2 输入配置

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

通用和复用功能I/O STM32F10xxx参考手册
下图给出了I/O端口位的输入配置
图15
输入浮空/上拉/下拉配置
image.png
(1) VDD_FT 对5伏容忍I/O脚是特殊的,它与VDD不同

1.3 输出配置

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

1.4 复用功能配置

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

1.5 模拟输入控制

当I/O端口被配置为模拟输入配置时:
● 输出缓冲器被禁止;
● 禁止施密特触发输入,实现了每个模拟I/O引脚上的零消耗。施密特触发输出值被强置
为’0’;
● 弱上拉和下拉电阻被禁止;
● 读取输入数据寄存器时数值为’0’。
下图示出了I/O端口位的高阻抗模拟输入配置:
图18
高阻抗的模拟输入配置
image.png
(1) VDD_FT 对5伏兼容I/O脚是特殊的,它与VDD不同

1.6外设的GPIO配置

image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png

2、STM32F4系列

2.1 GPIO功能描述

image.png
● 输入浮空
● 输入上拉
● 输入下拉
● 模拟功能
● 具有上拉或下拉功能的开漏输出
● 具有上拉或下拉功能的推挽输出
● 具有上拉或下拉功能的复用功能推挽
● 具有上拉或下拉功能的复用功能开漏

在复位期间及复位刚刚完成后,复用功能尚未激活,I/O 端口被配置为输入浮空模式。
复位后,调试引脚处于复用功能上拉/下拉状态:
● PA15:JTDI 处于上拉状态
● PA14:JTCK/SWCLK 处于下拉状态
● PA13:JTMS/SWDAT 处于下拉状态
● PB4:NJTRST 处于上拉状态
● PB3:JTDO 处于浮空状态

2.2输入配置

对 I/O 端口进行编程作为输入时:
● 输出缓冲器被关闭
● 施密特触发器输入被打开
● 根据 GPIOxPUPDR 寄存器中的值决定是否打开上拉和下拉电阻
● 输入数据寄存器每隔 1 个 AHB1 时钟周期对 I/O 引脚上的数据进行一次采样
● 对输入数据寄存器的读访问可获取 I/O 状态
图 20 _说明了 I/O 端口位的输入配置。
image.png

2.3输出配置

对 I/O 端口进行编程作为输出时:
● 输出缓冲器被打开:
— 开漏模式:输出寄存器中的“0”可激活 N-MOS,而输出寄存器中的“1”会使端
口保持高组态 (Hi-Z)(P-MOS 始终不激活)。
— 推挽模式:输出寄存器中的“0”可激活 N-MOS,而输出寄存器中的“1”可激活
P-MOS。
● 施密特触发器输入被打开
● 根据 GPIOxPUPDR 寄存器中的值决定是否打开弱上拉电阻和下拉电阻
● 输入数据寄存器每隔 1 个 AHB1 时钟周期对 I/O 引脚上的数据进行一次采样
● 对输入数据寄存器的读访问可获取 I/O 状态
● 对输出数据寄存器的读访问可获取最后的写入值
图 21 _说明了 I/O 端口位的输出配置。
image.png

2.4复用功能配置

对 I/O 端口进行编程作为复用功能时:
● 可将输出缓冲器配置为开漏或推挽
● 输出缓冲器由来自外设的信号驱动(发送器使能和数据)
● 施密特触发器输入被打开
● 根据 GPIOx_PUPDR 寄存器中的值决定是否打开弱上拉电阻和下拉电阻
● 输入数据寄存器每隔 1 个 AHB1 时钟周期对 I/O 引脚上的数据进行一次采样
● 对输入数据寄存器的读访问可获取 I/O 状态
image.png

2.5模拟配置

对 I/O 端口进行编程作为模拟配置时:
● 输出缓冲器被禁止。
● 施密特触发器输入停用,I/O 引脚的每个模拟输入的功耗变为零。施密特触发器的输出被
强制处理为恒定值 (0)。
● 弱上拉和下拉电阻被关闭。
● 对输入数据寄存器的读访问值为“0”。
注意: 在模拟配置中,I/O 引脚不能为 5 V 容忍。
image.png