总框图:
一、推挽输出介绍
由ODR寄存器控制输入信号,两个MOS管作为开关控制,由上下两个MOS做到推挽输出,推时为灌电流,电流输出到负载,输出高电平。挽时为拉电流,电流由负载流向芯片,输出低电平。即可自由输出高低电平。
二、开漏输出
开漏输出有两种,一种为低电平,一种为高阻态。如果要输出高电平的话可以输出高阻态,然后外接上拉电阻。
高阻态即表示电阻无穷大的输出端口,具体可以看看下图
第一张图的OUT为高阻态输出,第二张图的OUT2则为接上拉电阻使电路输出为高电平。
控制GPIO的寄存器:
端口配置低寄存器
(GPIOx_CRL) (x=A..E) :共32位,每四位控制一个引脚的模式。控制低八位
端口配置高寄存器
(GPIOx_CRH) (x=A..E) :共32位,每四位控制一个引脚的模式。控制高八位
端口输入数据寄存器
(GPIOx_IDR) (x=A..E) :只用低16位,读取IO的输入状态。
端口输出数据寄存器
(GPIOx_ODR) (x=A..E) :只用低16位,控制IO的输出状态。
端口位设置
/
清除寄存器
(GPIOx_BSRR) (x=A..E)
端口位清除寄存器
(GPIOx_BRR) (x=A..E)
端口配置锁定寄存器
(GPIOx_LCKR) (x=A..E)