梁工
发表于 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