GPIO:
分为A.B.C.D.E.F.G组,每组16个IO,IO都是多功能的,使用之前需要先配置,默认是输入功能。
每组GPIO有2个32位配置寄存器(GPIOX_CRL 、GPIOX_CRH),2个32位数据寄存器(GPIOX_IDR、GPIOX_ODR),一个32位置位、复位寄存器(GPIOX_BSRR),1个16位复位寄存器(GPIOX_BRR),1个32位锁定寄存器(GPIOX_LCKR)。
GPIOX_0-7低IO使用GPIOX_CRL配置
GPIOX_8-15高IO使用GPIOX_CRH配置
模式:
浮空输入:IO电平完全由外部输入来决定。
上拉输入:经过电阻连接到VCC,默认为高电平。
下拉输入:经过电阻连接到GND,默认为低电平
模拟输入:芯片内部外设专用功能,ADC、DAC对应的IO功能
开漏输出:IO输出0接GND,IO输出1悬空,需要外接上拉电阻,才能实现输出高电平
推挽输出:IO输出0接GND,IO输出1接VCC,拥有比较强的驱动能力。
推挽复用:GPIO口被复用成别的功能,即不是作为GPIO口使用,比如UART.SPI模块对应的输出数据线
开漏复用:GPIO口被复用成别的功能,即不是作为GPIO口使用,比如IIC模块对应的输出数据线,使用时需要外接上拉电阻。
具体配置看STM32用户手册。
清0:GPIOX->ODR &= ~(0X1<<4);
置1:GPIOX->ODR |= (0X1<<4);
配置GPIO基本步骤:
1、开启IO口的时钟
2、配置IO口的模式
3、设置IO口的默认状态