BeHappy 发表于 2025-6-1 10:59:18

ercircle 发表于 2025-6-1 10:43
先不用改代码的,这个例程我测过。
这个频率需要通过下载器调节,感觉是频率误差大导致的,请问使用的那 ...

您好,感谢百忙之中解答疑惑 :-)


用的是2K08U作为下载器,它本身被集成到8051U开发板上了。
昨天无论我怎么操作,包括重新插拔都没有达到期望的效果。今天再试,就好了:呈现出水滴流动的效果

以下是下载时的频率设置情况:

ercircle 发表于 2025-6-1 11:08:35

BeHappy 发表于 2025-6-1 10:59
您好,感谢百忙之中解答疑惑 :-)




{:4_250:}多试试,可以观察下异常时是不是这个频率调节误差变大影响的

BeHappy 发表于 2025-6-1 11:33:44

很奇怪,总是要在代码下载之后运行一段时间,才能看到正确的效果

ercircle 发表于 2025-6-1 12:20:33

BeHappy 发表于 2025-6-1 11:33
很奇怪,总是要在代码下载之后运行一段时间,才能看到正确的效果

灯带如何连接开发板的,也在同一块板子吗。
可以用逻辑分析仪抓下刚上电的波形看看。
另外建议上传原理图看看

BeHappy 发表于 2025-6-1 12:38:49

ercircle 发表于 2025-6-1 12:20
灯带如何连接开发板的,也在同一块板子吗。
可以用逻辑分析仪抓下刚上电的波形看看。
另外建议上传原理图 ...

用大概20cm的杜邦线连接的电子积木,有8个灯珠。长这样:


开发板也只是把8051U的各种外设全部引出,实验用的是第一组SPI(P1.4 ~ P1.7)

ercircle 发表于 2025-6-1 12:57:42

BeHappy 发表于 2025-6-1 12:38
用大概20cm的杜邦线连接的电子积木,有8个灯珠。长这样:




换线搞短点试下。
或者换个频率,我用11.0592 + SPI_Config(0, 0); 试了也能点亮

BeHappy 发表于 2025-6-1 13:19:45

ercircle 发表于 2025-6-1 12:57
换线搞短点试下。
或者换个频率,我用11.0592 + SPI_Config(0, 0); 试了也能点亮 ...
有意思!
换了短线,每个都能控制了。不像先前的,跟段誉的六脉神剑一样

也试了换成11.0592MHz + SPI_Config(0, 0),没问题!

BeHappy 发表于 2025-6-1 13:40:21

感谢版主以及楼上各位大佬的答疑解惑!

最终,用普通SPI + DMA传送的方式,实现以25.6MHz mcu频率控制WS2812的目的!

_奶咖君_ 发表于 2025-6-3 08:55:16

晓飛飛 发表于 2025-5-30 21:31
用硬件SPI驱动WS2812的方法是通过发出一个byte来表达一个bit,表达24bit的数据就需要发出24个byte,而且 ...

啊 我的观点不是和你推荐的比较,,我的意思是用SPI+DMA的方式和软件模拟相比。。

晓飛飛 发表于 2025-6-3 10:46:41

_奶咖君_ 发表于 2025-6-3 08:55
啊 我的观点不是和你推荐的比较,,我的意思是用SPI+DMA的方式和软件模拟相比。。 ...

明白你的意思了,WS2812使用模拟模拟方式操作时,数据发出过程不允许被任何中断打断,因此大大的降低了实用性。
而SPI+DMA方式起码能保证这个过程是纯硬件的,不受其它中断影响,主程序里面只需要按位解析显示数据并填充RAM数据发起DMA即可,使得具有了一点实用性。驱动少量的WS2812还是可以的。
页: 1 2 [3] 4
查看完整版本: 普通SPI外设能否点亮WS2812 | 可以