HAL_Delay 是 STM32 HAL 库中的一个函数,用于在程序中产生一个指定时间的延迟。这个函数是基于系统滴答定时器(SysTick)来实现的,因此可以实现毫秒级的延迟。
void HAL_Delay(uint32_t Delay);
配置引脚:
点击 1 到 IOC 配置页面。
点击 2 配置引脚为GPIO_Output。
点击 3 查看 GPIO 配置。
点击 4 配置 PE7。
点击 5 配置高电平。
点击 6 重新生成代码。
为什么配置高电平?
为什么这里配置高电平,配置 GPIO 引脚为高电平或低电平,取决于应用场景和你希望通过 GPIO 引脚实现的功能。这里的 LED 灯从原理图看是共阳极也就是三中颜色的LED灯的阳极都已经接了 VCC ,另一端接的是 GPIO 引脚,这时候我们配置高电平是为了让 LED 在默认情况下保持关闭状态。这在实际应用中是一个常见的设计策略。当你想点亮 LED 时,需要将 GPIO 引脚配置为低电平(即 GPIO_PIN_RESET),此时会有电流流过 LED,LED 会发光。
HAL_GPIO_WritePin 函数:
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
参数说明
GPIOx: 这是一个 GPIO 端口基地址,例如 GPIOA, GPIOB, GPIOC 等等。这些端口由芯片的外设寄存器定义。
GPIO_Pin: 这是 GPIO 引脚号,你可以使用 HAL 库定义的宏,例如 GPIO_PIN_0, GPIO_PIN_1, GPIO_PIN_5 等等,用来指定要操作的引脚。
PinState: 这是要设置的引脚状态,它是一个枚举类型 GPIO_PinState,可以取以下两个值:
1.GPIO_PIN_SET: 设置引脚为高电平。
2.GPIO_PIN_RESET: 设置引脚为低电平。
//实验3HAL_GPIO_WritePin(GPIOE, GPIO_PIN_7, GPIO_PIN_RESET); /* �???红灯 */printf("red\n");HAL_Delay(1000); // 延时1秒,避免过快发�??// �??? GPIOA �??? 5 号引脚设置为高电�???HAL_GPIO_WritePin(GPIOE, GPIO_PIN_7, GPIO_PIN_SET); /* 关红�??? */HAL_Delay(1000); // 延时1秒,避免过快发�??HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8, GPIO_PIN_RESET); /* �??绿灯 */printf("red\n");HAL_Delay(1000); // 延时1秒,避免过快发�??// �??? GPIOA �??? 5 号引脚设置为高电�???HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8, GPIO_PIN_SET); /* 关绿�??? */HAL_Delay(1000); // 延时1秒,避免过快发�??HAL_GPIO_WritePin(GPIOE, GPIO_PIN_9, GPIO_PIN_RESET); /* �???蓝灯 */printf("red\n");HAL_Delay(1000); // 延时1秒,避免过快发�??// �??? GPIOA �??? 5 号引脚设置为高电�???HAL_GPIO_WritePin(GPIOE, GPIO_PIN_9, GPIO_PIN_SET); /* 关蓝�??? */HAL_Delay(1000); // 延时1秒,避免过快发�??