03 🔥点灯
点灯 流水灯
up的视频讲解: https://space.bilibili.com/1455872040
例程代码: 📥点灯实验代码
1 🧭配置GPIO外设
- 1 在右侧配置引脚
PC13为GPIO_Output模式

2 📃写点灯代码
- 1 打开main.c文件,往下翻找到
main函数,在while里面写下以下程序:
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,0);
我们很容易理解这个代码:
- HAL_GPIO_WritePin 就是
写引脚的意思 - GPIOC,GPIO_PINP13 就是
PC13引脚 - 0 就是输出
低电平

3 🔥编译并烧录程序
- 1 我们看到黄色的LED亮了

4 🚥流水灯
4.1 外设配置
- 将四盏LED对应的引脚配置为GPIO_Output


4.2 四盏灯 亮/灭
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,0);//黄灯灭
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,0);//红灯灭
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,1);//蓝灯灭
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,1);//绿灯灭
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,1);//黄灯亮
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,1);//红灯亮
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,0);//蓝灯亮
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,0);//绿灯亮
4.3 流水灯代码
while (1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,1);//黄灯
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,0);//黄灯
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,1);//红灯
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,0);//红灯
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,0);//蓝灯
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,1);//蓝灯
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,0);//绿灯
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,1);//绿灯
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
🎊恭喜你点亮了第一盏灯 并实现了流水灯🎊
你已经学习到了从搭环境到配置工程 写代码 编译下载的全部流程,后面的课程周周会从软硬件深入的去讲解STM32 准备好了吗!
✅点灯之后再验证一步
本板PC13指示灯按低电平点亮理解。先输出固定低电平,再改固定高电平,最后每500 ms翻转一次;亮500 ms、灭500 ms的完整周期是1秒。不同接法的LED有效电平可能相反,应沿电源、电阻、LED、IO口追踪电流。
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13)只改变输出状态。HAL_Delay便于第一次实验,但会阻塞主循环;后面的定时器课会把等待交给硬件。若无法点亮,检查GPIO时钟、模式、接线和实际引脚电压,不要先怀疑延时函数。