HAL库 - GPIO的输入和输出

GPIO输出

常用函数

void HAL_GPIO_WritePin(GPIOx, GPIO_Pin, PinState)
作用:向IO写0/1
参数GPIOx:组编号,x取A到D。
参数GPIO_Pin:引脚编号,GPIO_PIN_0到15(GPIO_PIN_13)
参数PinState:要写的值,GPIO_PIN_RESET或GPIO_PIN_SET(写0或写1)。
例如,向PC13写0:HAL_GPIO_WritePin(GPIOC, GPIO_Pin_13, GPIO_PIN_RESET)

void HAL_Delay(uint32_t Delay)
作用:延时一段时间
参数Delay:要延迟的时间长度,单位ms。例如延迟0.5秒,就写500。

示例:闪灯实验

123456789101112131415
/* USER CODE BEGIN WHILE */while (1){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_9,GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_9,GPIO_PIN_RESET); HAL_Delay(500);  /* USER CODE END WHILE */  /* USER CODE BEGIN 3 */}

GPIO输入

常用函数

GPIO_PinState HAL_GPIO_ReadPin(GPIOx,GPIO_PIN)
作用:读取IO的当前值。
参数GPIOx:组编号,x取A到D
参数GPIO_Pin:引脚编号,GPIO_PIN_0到15(例如GPIO_PIN_13)
返回值:IO引脚的读数,GPIO_PIN_RESET代表0,GPIO_PIN_SET代表1。

示例:按下按钮点亮灯,松开灭灯

123456789101112131415
/* USER CODE BEGIN WHILE */while (1){if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_2) == GPIO_PIN_SET)//PE2按钮没有被按下{	HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET);//熄灭PE3的灯}else//PE2按钮被按下{	HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET);//点亮PE3的灯}   /* USER CODE END WHILE */  /* USER CODE BEGIN 3 */}
🔍 ×