文章目录
1、GPIO介绍
每个GPIO由7个32位寄存器控制
寄存器名称 | 功能 |
---|---|
CRL和CHL | 两个用来配置模式的32位寄存器 |
IDR和ODR | 两个32位的数据寄存器 |
BSRR | 一个32位的置位/复位寄存器 |
BSR | 一个16位的复位寄存器 |
LCKR | 一个32位的锁存器 |
2、GPIO主要特性
3、GPIO功能描述
IO端口可以自由编程,但IO端口寄存器必须按32位字访问(不允许半字或字节访问)GPIOx_BSRR 和 GPIO x_BRR 寄存器 允许对任何 GPIO 寄存器的读更改的独立访问;这样,在读和更改访问之间产生 IRQ 时 不会发生危险。 其端口位基本结构如图所示 。
这里注意 一下 FT 表示耐压 5V 想 知道哪些引脚耐压 5V 可以参考 STM32F1 相关的数据手册,上面对每个引脚都有说明,也就是说没有FT的IO口不能直接接到5V。

下面是端口位配置表和输出模式位表 ,这 两张表比较重要,配置IO 引脚 的时候,需要配置什么状态直接看这两张表。
3.1输入模式
3.1.1浮空输入
此时GPIO不接上下拉电阻,CPU检测到的电平高低就是外围设备的电平情况
3.1.2上拉输入
接上拉电阻,外围设备在没有输入的情况下,CPU接到的仍然是高电平,上拉输入的目的是为了将不稳定的电平嵌套在一个较高的电压上。一般用在外围设备默认设置是高电平的情况
3.1.3下拉输入
接下拉电阻,外围设备在没有输入的情况下,CPU接到的仍然是低电平,下拉输入的目的是为了将不稳定的电平嵌套在一个较低的电压上。一般用在外围设备默认设置是低电平的情况
3.1.4模拟输入
用在ADC转换上,通过参考电压的设置,让IO引脚输入不同的电压这时仍然是高低电平的跳转,但可以获取一个区间内的电压具体数值