当前位置:首页 > 问问

GPIO_PIN_SET为什么是高电平 GPIO_PIN_SET是为什么高电平

1、什么是GPIO_PIN_SET

GPIO_PIN_SET是STM32提供的一个库函数,它用于设置GPIO的寄存器,使对应的IO口输出高电平。在STM32的开发中,我们经常用到这个函数来控制各种外设或执行具体的控制操作。

2、为什么GPIO_PIN_SET是高电平

GPIO_PIN_SET之所以是高电平是因为STM32的GPIO是采用推挽输出的方式。在STM32的寄存器中,为了实现输出高和低电平的控制,会分别有两个寄存器,一个是设置输出高电平的寄存器,一个是设置输出低电平的寄存器。在设置输出高电平的寄存器时,GPIO_PIN_SET函数会将对应的位设置为1,表示该IO口输出高电平。而对应的低电平寄存器,会将对应的位设置为0,表示该IO口输出低电平。

3、STM32的输出操作方式

STM32的GPIO有三种输出操作方式:开漏输出、推挽输出和复用推挽输出。其中,推挽输出是最常用的方式。推挽输出时,IO输出时既能输出高电平,又能输出低电平,是STM32推荐的输出方式,也是GPIO_PIN_SET函数输出高电平的原因。

4、GPIO_PIN_SET的调用方法

使用GPIO_PIN_SET函数进行IO口输出时,需要指定具体的GPIO端口和位数。例如,在STM32F4系统中,要控制PF9输出高电平,代码如下:

GPIO_InitTypeDef GPIO_InitStruct;

GPIO_InitStruct.Pin = GPIO_PIN_9;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);

HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_SET);

在这段代码中,我们首先需要定义一个GPIO_InitTypeDef类型的结构体GPIO_InitStruct,然后对其中的Pin、Mode和Speed进行赋值。在初始化完成后,我们可以使用HAL_GPIO_WritePin函数来进行GPIO的控制操作,在第三个参数中传递GPIO_PIN_SET,就可以输出高电平了。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章