STM32硬件剖析(引脚模式设置的8种模式)

开漏模式:
1.是指输出端由mos驱动输出
2.输出没有上拉,好处是输出电平由外部上拉决定
3.可以多个开漏接一起,实现“线与”

推挽输出;
1.带负载能力强
2.可以输出高和低,而开漏只能输出低或者关闭输出

GPIO处于输入模式下,下拉输入和上拉输入的相关配置如下图所示。
需要注意的是,下拉输入和上拉输入是通过端口输出寄存器GPIOx_ODR来区分的。
因此,在进行上拉/下拉输入配置时候,虽然对GPIO进行的关于输入的操作,但是仍要对和输出相关的寄存器ODR进行配置。

STM32硬件剖析(引脚模式设置的8种模式)_第1张图片
上述注意事项在实际代码编写时表现为:
(1)库函数

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;  //PA0     
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0 下拉输入    
GPIO_Init(GPIOA, &GPIO_InitStructure);  
GPIO_ResetBits(GPIOA,GPIO_Pin_0);       //PA0 下拉 ODR=0  

特此说明,虽然GPIO_Mode中区分了上拉输入模式GPIO_Mode_IPU和下拉输入模式GPIO_Mode_IPD,如下图所示,但是在GPIO初始化配置时候仍然需要对ODR寄存器进行设置,如上述的GPIO_ResetBits(GPIOA,GPIO_Pin_0);操作。
STM32硬件剖析(引脚模式设置的8种模式)_第2张图片
(2)寄存器

GPIOA->CRL&=0XFFFFFFF0;  //PA0 清除之前设置    
GPIOA->CRL|=0X00000008;  //PA0 输入     
GPIOA->ODR|=0<<0;      //PA0 下拉  

此外,GPIO处于输入模式下,不需要对MODE1和MODE0进行设置(初始化之后默认为00)
STM32硬件剖析(引脚模式设置的8种模式)_第3张图片

你可能感兴趣的:(STM32深入剖析实践)