三色灯烧写后,开始的时候是隔三秒变换一种颜色,按下蓝色按键重置后,一直是白色,要按两下两下黑色按键,颜色才开始循环变化,这是什么原因
有什么解决办法??👀
!: 代表值得取反,对于整形变量,只要不为0,使用 ! 取反都是0,0取反就是1。就像 bool 只有真假一样。你的flag怎么还判断出-1了?
白光是由于三色全部点亮导致的,逻辑再检查检查
代码先贴全,不然没法分析。
1.代码是二楼这个吧,没看懂里面有中断还有串口
2.灯是怎么连接的,有说明吗
把color判断从if(flag==1)中拿出来试试看
while(1)
{
if(KEY1 == 0)
{
DelayMs(60);
if(KEY1 == 0)
{
flag = !flag;
BUZZER_ON();
DelayMs(1000);
BUZZER_OFF();
}
}
if(flag == 1)
{
if(RGBCount > 3000)
{
RGBCount = 0;
RGBState();
}
switch(color)
{
case 1:
DATA_IO1 = 1;DATA_IO2 = 1;DATA_IO3 = 1;
OledClear();
OledSprintf(1,1,"白色");
OledSprintf(3,1,"R-1,G-1,B-1");
break;
case 2:
.....后面的不变
}
....后面的不变
}