找回密码
 立即注册
楼主: 好学天上

STC8G驱动WS2812点亮单独的灯

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-03-29 17:35:27

7

主题

62

回帖

537

积分

高级会员

积分
537
发表于 2024-8-5 13:58:21 | 显示全部楼层
Debu*** 发表于 2024-8-5 12:28
功能不同,改一下
复位和字节发送是通用的
时序用示波器调一下,我的是 ...

如果在发送字节的循环里,要前面的灯不亮,是把GREE和RED还有YELLOW的值改为0吗,试了好像不行

点评

发一大堆0,然后发数据,再发一大堆0  详情 回复 发表于 2024-8-5 14:01
好好学习天天向上
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-09-03 09:00:23
已绑定手机

85

主题

6049

回帖

1万

积分

超级版主

积分
11118
发表于 2024-8-5 14:01:03 | 显示全部楼层
好学*** 发表于 2024-8-5 13:58
如果在发送字节的循环里,要前面的灯不亮,是把GREE和RED还有YELLOW的值改为0吗,试了好像不行 ...

发一大堆0,然后发数据,再发一大堆0
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-09-03 09:00:23
已绑定手机

85

主题

6049

回帖

1万

积分

超级版主

积分
11118
发表于 2024-8-5 14:01:44 | 显示全部楼层
好学*** 发表于 2024-8-5 13:32
天老爷,是我太蠢了,我忘记该P54推挽输出了
还有就是我这块板上有五百个灯,我把灯数量改成五百,然后i ...

灯太多可能是电流不够
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-03-29 17:35:27

7

主题

62

回帖

537

积分

高级会员

积分
537
发表于 2024-8-5 14:12:22 | 显示全部楼层
Debu*** 发表于 2024-8-5 14:01
发一大堆0,然后发数据,再发一大堆0

怎么发呀
  1. void WS2812_Write(void)
  2. {
  3.         unsigned int i;
  4.         WS2812_Reset();
  5.         for(i=0;i<LED;i++)        //10个灯
  6.         {
  7.                                         WS2812_Write_Byte(0);
  8.                                         WS2812_Write_Byte(0);
  9.                                         WS2812_Write_Byte(0);
  10.                                         if(i == (LED-1))
  11.                                         {
  12.                 WS2812_Write_Byte(GREEN);
  13.                 WS2812_Write_Byte(RED);
  14.                 WS2812_Write_Byte(BLUE);
  15.                                         }
  16.         }
  17. }
复制代码

这样式吗

点评

unsigned int LED_ON; //第几个亮 void WS2812_Write(void) { unsigned int i; WS2812_Reset(); i=0; while(1) { if(i==LED_ON)  详情 回复 发表于 2024-8-5 14:24
好好学习天天向上
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-03-29 17:35:27

7

主题

62

回帖

537

积分

高级会员

积分
537
发表于 2024-8-5 14:22:46 | 显示全部楼层
Debu*** 发表于 2024-8-5 14:01
发一大堆0,然后发数据,再发一大堆0

还有我改这个数据他也不会变颜色,就还是白色
  1. RED=255;        //红 0~255
  2.                 GREEN=0;        //绿 0~255
  3.                 BLUE=0;        //蓝 0~255
  4.                 WS2812_Write();
复制代码

点评

时序不对,用示波器调nop数量  详情 回复 发表于 2024-8-5 14:26
好好学习天天向上
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-09-03 09:00:23
已绑定手机

85

主题

6049

回帖

1万

积分

超级版主

积分
11118
发表于 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++;

                }
        }
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-09-03 09:00:23
已绑定手机

85

主题

6049

回帖

1万

积分

超级版主

积分
11118
发表于 2024-8-5 14:26:11 | 显示全部楼层
好学*** 发表于 2024-8-5 14:22
还有我改这个数据他也不会变颜色,就还是白色

时序不对,用示波器调nop数量
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-03-29 17:35:27

7

主题

62

回帖

537

积分

高级会员

积分
537
发表于 2024-8-5 14:40:10 | 显示全部楼层
Debu*** 发表于 2024-8-5 14:24
unsigned int LED_ON;        //第几个亮

void WS2812_Write(void)

用了这个,仍然是亮所有的且为白色。时序会有这么大的差别吗

点评

时序要求严格,使用我的程序,必须是11.0592MHz  详情 回复 发表于 2024-8-5 14:44
好好学习天天向上
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:547
  • 最近打卡:2025-09-03 09:00:23
已绑定手机

85

主题

6049

回帖

1万

积分

超级版主

积分
11118
发表于 2024-8-5 14:44:05 | 显示全部楼层
好学*** 发表于 2024-8-5 14:40
用了这个,仍然是亮所有的且为白色。时序会有这么大的差别吗

时序要求严格,使用我的程序,必须是11.0592MHz
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-03-29 17:35:27

7

主题

62

回帖

537

积分

高级会员

积分
537
发表于 2024-8-5 14:45:58 | 显示全部楼层
Debu*** 发表于 2024-8-5 14:44
时序要求严格,使用我的程序,必须是11.0592MHz

我是用的11.0592M,只是示波器调准确的时序时间那个我不会我没改
好好学习天天向上
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-4 07:12 , Processed in 0.133576 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表