学习目标:
了解寄存器的大致功能
学习内容:
STM32 的 IO 口相比 51 而言要复杂得多,所以使用起来也困难很多。首先 STM32 的 IO 口 可以由软件配置成如下 8 种模式:
1、输入浮空
浮空模式默认电平是不确定的,完全由外部输入决定检测按键是否按下,就是配置为该模式
2、输入上拉
3、输入下拉
上拉和下拉输入默认电平由上拉和下拉电阻决定,上拉即将不确定电平通过一个电阻钳为在高电平,下拉同理
4、模拟输入
将模拟信号转换为数字信号
5、开漏输出
若不外接电路,输出一直为低电平,要想得到高电平状态,需要外接上拉电阻
6、推挽输出
可直接输出高低电平,直接驱动功耗不高的电子器件
7、推挽式复用功能
8、开漏复用功能
typedef enum
{ GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:
2 32位配置寄存器 (GPIOx_CRL,GPIOx_CRH)
2 32位数据寄存器 (GPIOx_IDR和GPIOx_ODR)
1 32位置位/复位寄存器 GPIOx_BSRR
1 16位复位寄存器 GPIOx_BRR
1 32位锁定寄存器( GPIOx_LCKR
根据数据手册中列出的每个I/O端口的特定硬件特征, GPIO端口的每个位可以由软件分别配置成多种模式。大家如果想要了解每个寄存器的详细使用方法,可以参考《STM32 中文参考手册 V10》P105~P129。
STM32 的 IO 口位配置表