好学天上 发表于 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:}
页: 1 2 [3]
查看完整版本: STC8G驱动WS2812点亮单独的灯