void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) { /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); assert_param(IS_GPIO_PIN_ACTION(PinState)); if (PinState != GPIO_PIN_RESET) { GPIOx->BSRR = (uint32_t)GPIO_Pin; } else { GPIOx->BRR = (uint32_t)GPIO_Pin; } }
时间: 2024-03-07 13:53:28 浏览: 216
GPIO.zip_GPIO_HAL_LIB
这是一个用于写入 GPIO 引脚输出状态的函数。它接受三个参数:
1. `GPIOx`:要配置的 GPIO 端口,如 GPIOA、GPIOB 等等。
2. `GPIO_Pin`:要配置的 GPIO 引脚,如 GPIO_PIN_0、GPIO_PIN_1 等等。
3. `PinState`:要设置的引脚状态,可以是 GPIO_PIN_RESET 或 GPIO_PIN_SET。
这个函数首先通过 `assert_param` 宏对参数进行检查,以确保传入的参数都是有效的。然后根据 `PinState` 的值设置 GPIO 引脚的状态,如果是 GPIO_PIN_SET 则将对应的引脚设置为高电平,反之则设置为低电平。具体实现使用了寄存器操作,通过 `GPIOx->BSRR` 和 `GPIOx->BRR` 分别设置 GPIO 引脚的状态。
阅读全文