STM32 C8T6控制 3色-LED模块 顺序闪烁
文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、实现步骤:
通过R、G、B三个引脚的电平高低可以调节三种基色(红/蓝/绿)的量灭–从而实现LED顺序闪烁
二、程序如下:
3_RGB_LED.C
#include "stm32f10x.h" // Device header
#include "3_RGB_LED.h"
void RGB_3_LED_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启GPIOA时钟
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
3_RGB_LED.h文件
#ifndef __3_RGB_LED_H
#define __3_RGB_LED_H
#define GPIO_GREEN_High GPIO_SetBits(GPIOA,GPIO_Pin_1);//绿灯高电平
#define GPIO_GREEN_LOW GPIO_ResetBits(GPIOA,GPIO_Pin_1)//绿灯低电平
#define GPIO_Blue_High GPIO_SetBits(GPIOA,GPIO_Pin_2)//蓝灯高电平
#define GPIO_Blue_LOW GPIO_ResetBits(GPIOA,GPIO_Pin_2)//蓝灯低电平
#define GPIO_Red_High GPIO_SetBits(GPIOA,GPIO_Pin_3)//红灯高电平
#define GPIO_Red_LOW GPIO_ResetBits(GPIOA,GPIO_Pin_3)//红灯低电平
void RGB_3_LED_Init(void);
#endif
main.c文件
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "OLED.h"
#include "3_RGB_LED.h"
int main(void)
{
RGB_3_LED_Init();
while (1)
{
GPIO_GREEN_High;//置高电平
Delay_ms(1000);//延时1s
GPIO_GREEN_LOW;//置低电平
GPIO_Blue_High;
Delay_ms(1000);
GPIO_Blue_LOW;
GPIO_Red_High;
Delay_ms(1000);
GPIO_Red_LOW;
}
}
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了3色LED的使用,也可通过R、G、B三个引脚的PWM电压输入可以调节三种基色(红/蓝/绿)的强度从而实现全彩的混色效果。
作者:A6&