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还是可以的。