GPIO 是控制或者采集外部器件的信息的外设,即负责输入输出。它按组分配,每组 16 个 IO 口,组数视芯片而定。STM32F103ZET6 芯片是 144 脚的芯片,具有 GPIOA、GPIOB、GPIOC、 GPIOD、GPIOE、GPIOF 和 GPIOG 七组 GPIO 口,共有 112 个 IO 口可供我们编程使用
GPIO 功能模式
GPIO 有八种工作模式,分别是:
1、输入浮空
2、输入上拉
3、输入下拉
4、模拟输入
5、开漏输出
6、推挽输出
7、开漏式复用功能
8、推挽式复用功能
GPIO 寄存器介绍
STM32F1 每组(这里是 A~D)通用 GPIO 口有 7 个 32 位寄存器控制,包括 :
2 个 32 位端口配置寄存器(CRL 和 CRH)
2 个 32 位端口数据寄存器(IDR 和 ODR)
1 个 32 位端口置位/复位寄存器(BSRR)
1 个 16 位端口复位寄存器(BRR)
1 个 32 位端口锁定寄存器 (LCKR)
端口配置低寄存器(CRL)- F1
设置工作模式、输出速度
端口配置高寄存器(CRH)- F1
设置工作模式、输出速度
工作模式配置补充 – F1
输入上拉/下拉电阻通过ODR寄存器来设置
端口输入数据寄存器(IDR)– F1
用于判断IO引脚的电平
端口输出数据寄存器(ODR)– F1
用于设置IO引脚输出的电平
端口位设置/清除寄存器(BSRR)– F1
用于设置ODR寄存器