目录
STM32芯片的PF6、PF7和PF8引脚分别与一个RGB灯的R灯(红灯)、G灯(蓝灯)和B灯(绿灯)连接,具体见图。RGB灯里面的三个小灯都可以单独控制,如果有两个或者三个灯同时亮的话就会混合成其它的颜色。
这些LED灯的阴极都是连接到STM32的GPIO引脚,只要我们控制GPIO引脚的电平输出状态,即可控制LED灯的亮灭。
1、软件设计
为了使工程更加有条理,把LED灯控制相关的代码独立分开存储,方便以后移植。在“工程模板”之上新建“led.c”及“led.h”文件,这些文件不属于STM32标准库的内容,是由自己根据应用需要编写的。
1.1、编程要点
-
使能GPIO端口时钟;
-
初始化GPIO目标引脚为推挽输出模式;
-
编写简单测试程序,控制GPIO引脚输出高、低电平。
2、代码编写
2.1、LED灯引脚宏定义
一般把硬件相关的部分使用宏来封装,若更改了硬件环境, 只修改这些硬件相关的宏即可,这些定义一般存储在头文件,即“led.h”文件中。
为了方便控制LED灯,把LED灯常用的亮、灭及状态反转的控制也直接定义成宏。
#ifndef __LED_H
#define __LED_H
#include "stm32f4xx.h"
//引脚定义
/*******************************************************/
//R 红色灯
#define LED1_PIN GPIO_Pin_6
#define LED1_GPIO_PORT GPIOF
#define LED1_GPIO_CLK RCC_AHB1Periph_GPIOF
//G 绿色灯
#define LED2_PIN GP