通过RGB的不同搭配可以得到不同的颜色,常用的七种颜色,红橙黄绿青蓝紫靛等等都可以由RGB配比得出,如果大家想了解更多可以去这里查看,那位帅气博主已经列出来了。😄(●'◡'●)https://blog.csdn.net/xiaoting451292510/article/details/8226325
在官方给的SDK中,已经给出了RGB的定义以及使用函数了,大家在使用的时候直接调用就好了,非常简单。下面就是官方给的代码,大家可以尝试理解PWM的作用、占空比等以后再尝试调用。
void light_adjust_R(u8 val, u8 lum){
pwm_set_lum (PWMID_R, get_pwm_cmp(val, lum), PWM_INV_R);
}
void light_adjust_G(u8 val, u8 lum){
pwm_set_lum (PWMID_G, get_pwm_cmp(val, lum), PWM_INV_G);
}
void light_adjust_B(u8 val, u8 lum){
pwm_set_lum (PWMID_B, get_pwm_cmp(val, lum), PWM_INV_B);
}
void light_adjust_RGB_hw(u8 val_R, u8 val_G, u8 val_B, u8 lum){
light_adjust_R(val_R, lum);
light_adjust_G(val_G, lum);
light_adjust_B(val_B, lum);
}
void light_adjust_RGB(u8 val_R, u8 val_G, u8 val_B, u8 lum){
#if LIGHT_ADJUST_STEP_EN
light_onoff_step_init();
#endif
light_adjust_RGB_hw(val_R, val_G, val_B, lum);
}
我自己设定的就是初始是白,然后每次按下按钮颜色都会改变,顺序如下:红-橙-黄-绿-青-蓝-紫-靛-关-开。其中lum是亮度,大家可以根据自己的需要自己设定。代码如下:
void colorful(u32 lum)
{
static u32 i=0;
gpio_write(LED_ON_OFF_Pin,1);//小灯初始化亮
if(gpio_read(KEY_ON_OFF_Pin)==0)
{
sleep_us(500000);
i++;
if(i==1)
{
light_adjust_RGB(255,0,0,lum);//红
}
else if(i==2)
{
light_adjust_RGB(255,97,0,lum);//橙
}
else if(i==3)
{
light_adjust_RGB(255,255,0,lum);//黄
}
else if(i==4)
{
light_adjust_RGB(0,255,0,lum);//绿
}
else if(i==5)
{
light_adjust_RGB(0,255,255,lum);//青
}
else if(i==6)
{
light_adjust_RGB(0,0,255,lum);//蓝
}
else if(i==7)
{
light_adjust_RGB(160,32,240,lum);//紫
}
else if(i==8)
{
light_adjust_RGB(8,64,84,lum);//靛
}
else if(i==9)
{
light_adjust_RGB(0,0,0,lum);//关灯
}
if(i==10)
{
gpio_write(LED_ON_OFF_Pin,1);
light_adjust_RGB(255,255,255,lum);//开灯
i=0; //标志位置零
}
}
}
好了,下期再见!ヾ(•ω•`)o88