波特律动
课程中心/STM32基础教程/【GPIO】点灯大师

【GPIO】点灯大师

下载例程代码: 

注意

CubeIDE:请按照 例程使用方法🔗 导入例程,否则下载的可能不是例程而是其他工程。

Keil:请使用 ArmCC V6 编译,否则可能会出现编译错误。点击此处查看切换编译器方法🔗

如何使用例程

编译并下载程序到学习板,即可看到程序效果:红绿蓝三色小灯循环点亮

例程讲解

下面介绍了如何自己实现该例程的功能

1、工程配置

  • 分配引脚:在Pinout&Configuration页面,将 PA6、PA7、PB0 配置为 GPIO_Output,并分别设置 User label 为 BLUE、GREEN、RED
    左键点击对应的引脚,选择 GPIO_Output;
    右键点击对应的引脚,选择 User label,分别输入 BLUE、GREEN、RED
  • 配置GPIO:在Pinout&Configuration -> GPIO,点击对应的 PIN,可以在下方的 GPIO output level 中设置初始输出电平
    高电平点亮LED,低电平熄灭LED

2、代码

  • 在main.c文件中编写HAL_GPIO_WritePin函数来改变GPIO的输出电平
  • 以下代码控制红、绿、蓝三个灯对应的GPIO依次输出电平
C语言
1HAL_GPIO_WritePin(RED_GPIO_Port, RED_Pin, GPIO_PIN_SET); //红色,点亮
2HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET); //蓝色,熄灭
3HAL_GPIO_WritePin(GREEN_GPIO_Port, GREEN_Pin, GPIO_PIN_RESET); //绿色,熄灭
4HAL_Delay(1000);
5HAL_GPIO_WritePin(RED_GPIO_Port, RED_Pin, GPIO_PIN_RESET); //红色,熄灭
6HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_RESET); //蓝色,熄灭
7HAL_GPIO_WritePin(GREEN_GPIO_Port, GREEN_Pin, GPIO_PIN_SET); //绿色,点亮
8HAL_Delay(1000);
9HAL_GPIO_WritePin(RED_GPIO_Port, RED_Pin, GPIO_PIN_RESET); //红色,熄灭
10HAL_GPIO_WritePin(BLUE_GPIO_Port, BLUE_Pin, GPIO_PIN_SET); //蓝色,点亮
11HAL_GPIO_WritePin(GREEN_GPIO_Port, GREEN_Pin, GPIO_PIN_RESET); //绿色,熄灭
12HAL_Delay(1000);
  • XX_GPIO_Port和XX_Pin是我们设置用户标签后,CubeMX自动帮我们生成的宏定义固定格式,注意不要打错大小写哦~
  • 函数最后一个参数:GPIO_PIN_SET设置为高电平(点亮),GPIO_PIN_RESET设置为低电平(熄灭)
  • 三个LED可以同时点亮,尝试不同的组合能显现出不同的颜色~