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还是可以的。
神农鼎
发表于 2025-6-3 13:18:27
【新提醒】SPI-DMA 驱动 WS2812三基色彩灯@Ai8051U,最多同时驱动2730个,不占CPU时间 - WS2812,点灯,灯带,光立方,DMA-SPI点灯,DMA-PWM点灯,即将推出一线制 国芯技术交流网站 - AI32位8051交流社区
BeHappy
发表于 2025-6-6 23:43:57
现在,不使用DMA传送,也能点亮16颗灯珠