输出控制方法:
HAL_GPIO_WritePin(GPIOx, Pin, State):设置指定引脚电平
HAL_GPIO_TogglePin(GPIOx, Pin):翻转指定引脚电平
寄存器直接操作:GPIOx->ODR |= Pin(置高),&= ~Pin(置低),^= Pin(翻转)
输入读取方法:
HAL_GPIO_ReadPin(GPIOx, Pin):读取指定引脚电平 (0/1)
寄存器直接操作:GPIOx->IDR & Pin
LED 流水灯实例:
c
运行
int main(){
GPIO_InitTypeDef GPIO_InitStruct;
__HAL_RCC_GPIOA_CLK_ENABLE();
// 配置PA0-PA3为推挽输出
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
while(1){
for(int i=0; i<4; i++){
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0<<i, GPIO_PIN_SET); // 点亮当前LED
HAL_Delay(200);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0<<i, GPIO_PIN_RESET); // 熄灭当前LED
}
}
}




Day9:GPIO 输入输出控制(上)
于 2025-11-25 18:43:50 首次发布
1万+

被折叠的 条评论
为什么被折叠?



