STM32 C8T6控制 3色-LED模块 顺序闪烁

文章目录

  • 一、实现步骤:
  • 二、程序如下:
  • 3_RGB_LED.C
  • 3_RGB_LED.h文件
  • main.c文件
  • 总结
  • 提示:以下是本篇文章正文内容,下面案例可供参考

    一、实现步骤:

    通过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&

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32 C8T6控制 3色-LED模块 顺序闪烁

    发表回复