好学天上
发表于 2024-8-5 14:22:46
DebugLab 发表于 2024-8-5 14:01
发一大堆0,然后发数据,再发一大堆0
还有我改这个数据他也不会变颜色,就还是白色RED=255; //红 0~255
GREEN=0; //绿 0~255
BLUE=0; //蓝 0~255
WS2812_Write();
DebugLab
发表于 2024-8-5 14:24:48
好学天上 发表于 2024-8-5 14:12
怎么发呀
这样式吗
unsigned int LED_ON; //第几个亮
void WS2812_Write(void)
{
unsigned int i;
WS2812_Reset();
i=0;
while(1)
{
if(i==LED_ON)
{
WS2812_Write_Byte(GREEN);
WS2812_Write_Byte(RED);
WS2812_Write_Byte(BLUE);
break;
}
else
{
WS2812_Write_Byte(0);
WS2812_Write_Byte(0);
WS2812_Write_Byte(0);
i++;
}
}
}
DebugLab
发表于 2024-8-5 14:26:11
好学天上 发表于 2024-8-5 14:22
还有我改这个数据他也不会变颜色,就还是白色
时序不对,用示波器调nop数量
好学天上
发表于 2024-8-5 14:40:10
DebugLab 发表于 2024-8-5 14:24
unsigned int LED_ON; //第几个亮
void WS2812_Write(void)
用了这个,仍然是亮所有的且为白色。时序会有这么大的差别吗{:3_57:}
DebugLab
发表于 2024-8-5 14:44:05
好学天上 发表于 2024-8-5 14:40
用了这个,仍然是亮所有的且为白色。时序会有这么大的差别吗
时序要求严格,使用我的程序,必须是11.0592MHz
好学天上
发表于 2024-8-5 14:45:58
DebugLab 发表于 2024-8-5 14:44
时序要求严格,使用我的程序,必须是11.0592MHz
我是用的11.0592M,只是示波器调准确的时序时间那个我不会我没改{:4_184:}
好学天上
发表于 2024-8-5 14:46:59
本帖最后由 好学天上 于 2024-8-6 09:29 编辑
DebugLab 发表于 2024-8-5 14:44
时序要求严格,使用我的程序,必须是11.0592MHz
这是我的程序{:4_171:} 我滴妈 上传错了栓ql
soma
发表于 2024-8-5 20:59:44
可以参考arduino里面的pixels库文件来修改。然后uart点灯。
灵犀骷
发表于 2024-9-4 14:46:31
我是用的这个人的代码改,但是还没改对。STC15W408AS驱动WS2812全彩LED
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=5761
(出处: 国芯技术交流网站)
大佬教教我,目前只能控制一个灯,触摸感应一次,切换一次变换一下灯的颜色。最多8个灯,但是第一个灯DO口就一直是5V。
好学天上
发表于 2024-9-5 09:44:28
灵犀骷 发表于 2024-9-4 14:46
我是用的这个人的代码改,但是还没改对。STC15W408AS驱动WS2812全彩LED
https://www.stcaimcu.com/forum.ph ...
楼主不是大佬,大佬在楼里,你翻翻去评论一下{:4_197:}