精英版STM32F103ZET6一共有7组IO口,每组有16个IO,总计16*7=112个IO
分别是GPIOA,GPIOB......GPIOG
GPIO口还能复用作为其他功能引脚,如PA9可以作为串口发送端,PA10作为串口接收端
TIP:IO口标记FT的可以容忍5V。
1.GPIO工作方式
4种输入模式: 4种输出模式:
输入浮空 开漏输出
输入上拉 开漏复用功能
输入下拉 推挽式输出
模拟输入 推挽式复用功能
2. GPIO配置寄存器
STM32F103ZET6一共有7组IO口,就有7个GPIO端口寄存器。(CRL,CRH,IDR,ODR,BSRR,BRR,LCKR)
每组GPIO端口寄存器包括:
两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),
两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),
一个32位置位/复位寄存器(GPIOx_BSRR),
一个16位复位寄存器(GPIOx_BRR),
一个32位锁定寄存器(GPIOx_LCKR)。
2.1 端口配置低寄存器(GPIOx_CRL)
CRL/CRH每四个位控制一个IO口,其中CRL控制0-7口
例如CNF0 MODE0 控制的是IO0。先设MODE,如10;再设CNF0=10,就是设置IO0口为推挽输出模式,最大速度2MHZ。
设MODE0=00 CNF=10,就是设置IO0口为上拉/下拉输入模式,至于到底是上拉还是下拉,由ODR寄存器决定。也就是说在输入模式下将ODR0设为0就是下拉模式,设为1就是上拉模式。
2.2 端口配置低寄存器(GPIOx_CRH)
CRH每四个位控制一个IO口,CRH控制8-15口
2.3 端口输入数据寄存器(GPIOx_IDR)
0-15位数据,16-31位保留
2.4 端口输出数据寄存器(GPIOx_ODR)
0-15位数据,16-31位保留
2.5 端口位设置/清除寄存器(GPIOx_BSRR)
低16位对应位设置为1,那么该IO口输出为高电平(改IO口的ODR输出为1),对应位设为0,则该IO口不产生任何影响(ODR不变)
高16位作用相反。如:BRO=1,其余设为0,则P0=0,其他位不变
2.6 端口位清除寄存器(GPIOx_BRR)
作用和BSRR的高16位类似。一般使用BSRR的低16位,BRR的低16位。
网友评论