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

SPI-DMA 驱动 WS2812三基色彩灯@Ai8051U,最多同时驱动2730个,不占CPU时间

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:96
  • 最近打卡:2025-07-26 11:29:49
已绑定手机

4

主题

70

回帖

167

积分

注册会员

积分
167
发表于 2025-7-14 17:19:16 | 显示全部楼层
梁工您好,我想问一下,这种方式是如何计算出WS2812的时序呢?如果我要改变时长要如何操作?

点评

请仔细阅读我主楼里的解释。C文件也有这些解释。 不知道你说的“改变时长”指的是什么参数,WS2812的时序是固定的,特别是高电平时间,不能随意更改。  详情 回复 发表于 2025-7-14 17:30
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:136
  • 最近打卡:2025-07-29 15:32:56

76

主题

6278

回帖

1万

积分

超级版主

积分
13327
发表于 2025-7-14 17:30:59 | 显示全部楼层
无用*** 发表于 2025-7-14 17:19
梁工您好,我想问一下,这种方式是如何计算出WS2812的时序呢?如果我要改变时长要如何操作? ...

请仔细阅读我主楼里的解释。C文件也有这些解释。
不知道你说的“改变时长”指的是什么参数,WS2812的时序是固定的,特别是高电平时间,不能随意更改。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:96
  • 最近打卡:2025-07-26 11:29:49
已绑定手机

4

主题

70

回帖

167

积分

注册会员

积分
167
发表于 2025-7-14 19:52:44 | 显示全部楼层
梁*** 发表于 2025-7-14 17:30
请仔细阅读我主楼里的解释。C文件也有这些解释。
不知道你说的“改变时长”指的是什么参数,WS2812的时序 ...

感谢您 的回复,我需要控制其它同类型的芯片,时序和WS2812不一样。

点评

控制SPI时钟频率即可: SPI_CLKDIV = 1; //SPI_CLKDIV主时钟分频, 1~255分频  详情 回复 发表于 2025-7-14 23:43
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:136
  • 最近打卡:2025-07-29 15:32:56

76

主题

6278

回帖

1万

积分

超级版主

积分
13327
发表于 2025-7-14 23:43:06 | 显示全部楼层
无用*** 发表于 2025-7-14 19:52
感谢您 的回复,我需要控制其它同类型的芯片,时序和WS2812不一样。

控制SPI时钟频率即可:
SPI_CLKDIV = 1; //SPI_CLKDIV主时钟分频, 1~255分频
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:96
  • 最近打卡:2025-07-26 11:29:49
已绑定手机

4

主题

70

回帖

167

积分

注册会员

积分
167
发表于 2025-7-15 09:06:29 | 显示全部楼层
梁*** 发表于 2025-7-14 23:43
控制SPI时钟频率即可:
SPI_CLKDIV = 1; //SPI_CLKDIV主时钟分频, 1~255分频

谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:96
  • 最近打卡:2025-07-26 11:29:49
已绑定手机

4

主题

70

回帖

167

积分

注册会员

积分
167
发表于 2025-7-15 14:30:09 | 显示全部楼层
实际测试有个问题,如果定义40颗灯,会亮41颗

点评

有多少个灯就定义多少个灯。 #define LED_NUM 32 //LED灯个数  详情 回复 发表于 2025-7-15 16:55
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:136
  • 最近打卡:2025-07-29 15:32:56

76

主题

6278

回帖

1万

积分

超级版主

积分
13327
发表于 2025-7-15 16:55:38 | 显示全部楼层
无用*** 发表于 2025-7-15 14:30
实际测试有个问题,如果定义40颗灯,会亮41颗

有多少个灯就定义多少个灯。
#define   LED_NUM  32     //LED灯个数
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:96
  • 最近打卡:2025-07-26 11:29:49
已绑定手机

4

主题

70

回帖

167

积分

注册会员

积分
167
发表于 2025-7-15 17:43:46 | 显示全部楼层
梁*** 发表于 2025-7-15 16:55
有多少个灯就定义多少个灯。
#define   LED_NUM  32     //LED灯个数

嗯,谢谢,我的意思是定义32实际会亮33颗
另外就是速度问题, 在24M频率下测速,只有速度1能正常工作,速度0不能亮灯,速度2-3是全亮。

其它功能是正常的。

点评

关于速度,根据时序确定,而不是随意改变速度,比如WS2812,其时序是固定的(允许一定误差)。 关于灯数,你有几个灯就定义几个灯,有33个灯就不要定义32个。  详情 回复 发表于 2025-7-15 21:14
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:96
  • 最近打卡:2025-07-26 11:29:49
已绑定手机

4

主题

70

回帖

167

积分

注册会员

积分
167
发表于 2025-7-15 17:44:49 | 显示全部楼层
无用*** 发表于 2025-7-15 17:43
嗯,谢谢,我的意思是定义32实际会亮33颗,
另外就是速度问题, 在24M频率下测速,只有速度1能正常工作, ...

以上测试是默认程序无改动,驱动WS2812
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:136
  • 最近打卡:2025-07-29 15:32:56

76

主题

6278

回帖

1万

积分

超级版主

积分
13327
发表于 2025-7-15 21:14:41 | 显示全部楼层
无用*** 发表于 2025-7-15 17:43
嗯,谢谢,我的意思是定义32实际会亮33颗,
另外就是速度问题, 在24M频率下测速,只有速度1能正常工作, ...

关于速度,根据时序确定,而不是随意改变速度,比如WS2812,其时序是固定的(允许一定误差)。
关于灯数,你有几个灯就定义几个灯,有33个灯就不要定义32个。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-31 10:33 , Processed in 0.134327 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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