找回密码
 立即注册
楼主: 梁工

SPI-DMA输出控制WS2812三基色彩灯程序@8H系列/32G系列,不加反相器, CPU休息

  [复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-05-29 09:32:37
已绑定手机

0

主题

8

回帖

34

积分

新手上路

积分
34
发表于 2025-5-27 15:44:17 | 显示全部楼层
我把您发出来的4种方式没有编译直接烧录,都测出了同样的情况
截图202505271544102763.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-11 10:35:11

7

主题

19

回帖

349

积分

中级会员

积分
349
发表于 2025-5-28 16:19:59 | 显示全部楼层
梁工您好,我看了你这个例程里面定义了60个灯,但是在不知道灯的数量的话,有没有其他方法在上电的时候MCU自己运行一段程序识别出灯的数量啊?非常感谢了!

点评

没有反馈识别不了的,除非你将最后的灯的DO接到单片机去接收判断。  详情 回复 发表于 2025-5-28 18:16
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6089

回帖

1万

积分

超级版主

积分
12721
发表于 2025-5-28 18:16:23 | 显示全部楼层
HUANGJ*** 发表于 2025-5-28 16:19
梁工您好,我看了你这个例程里面定义了60个灯,但是在不知道灯的数量的话,有没有其他方法在上电的时候MCU ...

没有反馈识别不了的,除非你将最后的灯的DO接到单片机去接收判断。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-06-11 10:35:11

7

主题

19

回帖

349

积分

中级会员

积分
349
发表于 2025-5-29 09:24:42 | 显示全部楼层
梁*** 发表于 2025-5-28 18:16
没有反馈识别不了的,除非你将最后的灯的DO接到单片机去接收判断。

好的,感谢梁工提供了一个思路。但是我如果在灯带的GND或者电源端加个ADC检测电路,上电的时候下发一个特定亮灯指令如50%的白光,再检测电流,已知单个灯的电流大小,是否就可以检测出灯的数量呢?问题是每个灯的电流大小是否相等?

点评

最后的一个灯的DO串联一个510欧姆电阻接到IO。 首先按可能最多的灯数发全部为0的数据。 然后,发全部数据发比较小的值(这样LED不会明显的很亮),比如发0x01,每发完一个非0的bit,就读回来DO是否检测到数据,检测  详情 回复 发表于 2025-5-29 09:45
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-05-29 09:32:37
已绑定手机

0

主题

8

回帖

34

积分

新手上路

积分
34
发表于 2025-5-29 09:32:37 | 显示全部楼层
zqd8*** 发表于 2025-5-27 15:44
我把您发出来的4种方式没有编译直接烧录,都测出了同样的情况

首先感谢梁工指导,麻烦再问一下这个情况是芯片内部硬件导致的?有处理办法吗?

点评

我不知道你的情况是什么导致的,我不这里不能够重现,所以没法知道原因。  详情 回复 发表于 2025-5-29 09:46
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6089

回帖

1万

积分

超级版主

积分
12721
发表于 2025-5-29 09:45:29 | 显示全部楼层
HUANGJ*** 发表于 2025-5-29 09:24
好的,感谢梁工提供了一个思路。但是我如果在灯带的GND或者电源端加个ADC检测电路,上电的时候下发一个特 ...

最后的一个灯的DO串联一个510欧姆电阻接到IO。
首先按可能最多的灯数发全部为0的数据。
然后,发全部数据发比较小的值(这样LED不会明显的很亮),比如发0x01,每发完一个非0的bit,就读回来DO是否检测到数据,检测到,则为最后一个灯。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6089

回帖

1万

积分

超级版主

积分
12721
发表于 2025-5-29 09:46:37 | 显示全部楼层
zqd8*** 发表于 2025-5-29 09:32
首先感谢梁工指导,麻烦再问一下这个情况是芯片内部硬件导致的?有处理办法吗? ...

我不知道你的情况是什么导致的,我不这里不能够重现,所以没法知道原因。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-05-29 09:32:37
已绑定手机

0

主题

8

回帖

34

积分

新手上路

积分
34
发表于 2025-5-29 09:48:59 | 显示全部楼层
好的  感谢梁工   我这边再多次试试吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:358
  • 最近打卡:2025-06-15 18:40:05
已绑定手机

21

主题

488

回帖

855

积分

高级会员

积分
855
发表于 2025-5-29 22:45:55 | 显示全部楼层
梁*** 发表于 2024-1-8 10:06
有的,最简单的就是直接IO输出,STC8系列这种1T单片机,都要加延时才行。下面是24MHz主频的程序,超简单: ...

梁工你好,我使用方案里只接有一个WS2812灯,但是我使用这个程序却无法点亮,我用的时STC32G的芯片,按理说不应该的,我也把数据输出设置成推挽模式了,但是就不亮!请问STC8和STC32NOP()应该一样的吧?

点评

STC8和STC32的NOP()一样的。 你示波器看下波形。  详情 回复 发表于 2025-5-29 23:16
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6089

回帖

1万

积分

超级版主

积分
12721
发表于 2025-5-29 23:16:41 | 显示全部楼层
lly*** 发表于 2025-5-29 22:45
梁工你好,我使用方案里只接有一个WS2812灯,但是我使用这个程序却无法点亮,我用的时STC32G的芯片,按理说不 ...

STC8和STC32的NOP()一样的。
你示波器看下波形。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-16 12:39 , Processed in 0.597500 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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