STM32cube 读取其他芯片 开漏输出引脚 的电平

有时候我们需要测量一个芯片的状态引脚,读取他的电平。

该引脚是开漏引脚。

首先要明白推挽和开漏的原理:

STM32cube 读取其他芯片 开漏输出引脚 的电平_第1张图片

K1、K2相当于口线内接的MOS管,有开关两个状态。

推挽输出:口线内接上下两只MOS管,K1打开、K2闭合时相当于口线接VCC,输出高电平(输出电流)。K1闭合、K2打开时相当于口线接GND,输出低电平(吸入电流)。从电流角度看,口线即可输出电流也可吸入电流,形如一推一拉,所以名曰“推挽”。

开漏输出:口线内只接了一只MOS管,口线外部可通过上拉电阻接VCC。K1闭合时,口线接地,输出低电平。K1打开时,口线通过上拉电阻拉到高电平。此种形式,口线内接的MOS管漏极只通过口线将其引出,内部不接任何元件,是开路的,所以名曰“开漏”。

单片机的低电平就是地,“地”是整个电路里电位的最低点,口线接地其输出的就是低电平了。

然后这时候我们来配置STM32 的引脚

STM32cube 读取其他芯片 开漏输出引脚 的电平_第2张图片

因为当该芯片的开漏引脚使能时候,该引脚内部开关闭合,引脚被拉低,所以当32的引脚检测到低电平时侯,该芯片的引脚使能。

我们的代码就可以这样写:

uint8_t pg= 0;
if (!HAL_GPIO_ReadPin(PG_GPIO_Port, PG_Pin)){
    	pg = 1;
    }

当检测到这个开楼引脚使能时候,变量pg就会置1.

你可能感兴趣的:(C语言,STM32,ARM,stm32,gpio)