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

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

  [复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-3-15 15:54:33 | 显示全部楼层
lh*** 发表于 2024-3-15 12:49
梁工你好,一定要用MISO这个脚是吗,其它脚不行是吧

是用MOSI输出,不是MISO。这是SPI输出脚,用SPI控制WS2812当然只能用MOSI。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2025-04-27 22:35:13

2

主题

100

回帖

444

积分

中级会员

积分
444
发表于 2024-3-16 06:24:41 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-05-01 10:59:26

6

主题

107

回帖

1669

积分

金牌会员

积分
1669
发表于 2024-3-16 08:09:14 | 显示全部楼层
学习了
 
经常看看,偶尔玩玩——不过都是简单的,难的我也不会呀
 
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:345
  • 最近打卡:2025-04-30 08:06:42

10

主题

165

回帖

1229

积分

金牌会员

积分
1229
发表于 2024-3-16 08:28:04 | 显示全部楼层
梁*** 发表于 2024-3-15 15:54
是用MOSI输出,不是MISO。这是SPI输出脚,用SPI控制WS2812当然只能用MOSI。

那就是这个芯片只能用这三个是吧
截图202403160827336220.jpg

点评

是的,选择其一。  详情 回复 发表于 2024-3-16 17:44
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:304
  • 最近打卡:2025-05-01 08:18:48

2

主题

55

回帖

1081

积分

金牌会员

积分
1081
发表于 2024-3-16 09:26:27 | 显示全部楼层
活到老学到老
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-3-16 17:44:53 | 显示全部楼层
lh*** 发表于 2024-3-16 08:28
那就是这个芯片只能用这三个是吧

是的,选择其一。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-01-23 19:43:10

0

主题

17

回帖

134

积分

注册会员

积分
134
发表于 2024-3-19 17:46:56 | 显示全部楼层
梁*** 发表于 2024-2-4 12:57
会不会是数据出错了?

梁工,这个问题我已经解决了,是驱动灯珠的电流不够,导致无驱动超过一定数量的灯珠
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-01-23 19:43:10

0

主题

17

回帖

134

积分

注册会员

积分
134
发表于 2024-3-19 17:53:54 | 显示全部楼层
梁工,我用你的例程,在定时器里使能定时器0的中断后,灯带就不亮了,关闭使能灯带正常量,能帮忙解决一下吗?谢谢了
截图202403191752295512.jpg

点评

定时器中断函数呢?  详情 回复 发表于 2024-3-19 19:04
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-3-19 19:04:47 | 显示全部楼层
Hs*** 发表于 2024-3-19 17:53
梁工,我用你的例程,在定时器里使能定时器0的中断后,灯带就不亮了,关闭使能灯带正常量,能帮忙解决一下 ...

定时器中断函数呢?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-01-23 19:43:10

0

主题

17

回帖

134

积分

注册会员

积分
134
发表于 2024-3-19 19:28:01 | 显示全部楼层
梁*** 发表于 2024-3-19 19:04
定时器中断函数呢?

中断函数都没写,我使能定时器中断后,直接点亮的灯带,这个是while(1)里的函数
while(1)
{
                Px = &WS2812B_Buffer[0][0];        //亮度(颜色)首地址
               
               
                for(i=0; i<(WS2812B_Num * 3); i++, Px++)       
                {
                        *Px = 0;        //清除所有的颜色
                }
               
                for(m = 0; m < 150; m++)
                {
                                WS2812B_Buffer[m][1] = 255;        //红色
                                WS2812B_Buffer[m][0] = 255;        //绿色
                                WS2812B_Buffer[m][2] = 255;        //蓝色
                }
               
                Load_WS2812B();                                                                //将颜色装载到SPI数据
                DMA_SPI_config();                                                        //启动SPI DMA, 720字节一共耗时2.08ms @25.6MHz,分3次发送, 一次发240字节.
}

点评

定时器中断函数都没写,却允许中断,怎么会正常?单片机基本理论要明白的哦。  详情 回复 发表于 2024-3-19 21:52
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 19:19 , Processed in 0.127611 second(s), 120 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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