梁工 发表于 2024-3-15 15:54:33

lhj 发表于 2024-3-15 12:49
梁工你好,一定要用MISO这个脚是吗,其它脚不行是吧

是用MOSI输出,不是MISO。这是SPI输出脚,用SPI控制WS2812当然只能用MOSI。

gaodasan 发表于 2024-3-16 06:24:41

{:4_250:}

dnajx 发表于 2024-3-16 08:09:14

学习了

lhj 发表于 2024-3-16 08:28:04

梁工 发表于 2024-3-15 15:54
是用MOSI输出,不是MISO。这是SPI输出脚,用SPI控制WS2812当然只能用MOSI。

那就是这个芯片只能用这三个是吧

hdxs 发表于 2024-3-16 09:26:27

{:4_174:}

梁工 发表于 2024-3-16 17:44:53

lhj 发表于 2024-3-16 08:28
那就是这个芯片只能用这三个是吧

是的,选择其一。

Hssa 发表于 2024-3-19 17:46:56

梁工 发表于 2024-2-4 12:57
会不会是数据出错了?

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

Hssa 发表于 2024-3-19 17:53:54

梁工,我用你的例程,在定时器里使能定时器0的中断后,灯带就不亮了,关闭使能灯带正常量,能帮忙解决一下吗?谢谢了

梁工 发表于 2024-3-19 19:04:47

Hssa 发表于 2024-3-19 17:53
梁工,我用你的例程,在定时器里使能定时器0的中断后,灯带就不亮了,关闭使能灯带正常量,能帮忙解决一下 ...

定时器中断函数呢?

Hssa 发表于 2024-3-19 19:28:01

梁工 发表于 2024-3-19 19:04
定时器中断函数呢?

中断函数都没写,我使能定时器中断后,直接点亮的灯带,这个是while(1)里的函数
while(1)
{
                Px = &WS2812B_Buffer;        //亮度(颜色)首地址
               
               
                for(i=0; i<(WS2812B_Num * 3); i++, Px++)       
                {
                        *Px = 0;        //清除所有的颜色
                }
               
                for(m = 0; m < 150; m++)
                {
                                WS2812B_Buffer = 255;        //红色
                                WS2812B_Buffer = 255;        //绿色
                                WS2812B_Buffer = 255;        //蓝色
                }
               
                Load_WS2812B();                                                                //将颜色装载到SPI数据
                DMA_SPI_config();                                                        //启动SPI DMA, 720字节一共耗时2.08ms @25.6MHz,分3次发送, 一次发240字节.
}
页: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15
查看完整版本: SPI-DMA输出控制WS2812三基色彩灯程序@8H系列/32G系列,不加反相器, CPU休息