Skip to main content

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时钟、模式、接线和实际引脚电压,不要先怀疑延时函数。