xxkj2010 发表于 2023-12-6 09:45:22

用STC8H驱动ws2812成功,感谢代码人生坛友!

之前用32位ARM内核单片机普通IO口模式驱动WS2812,总是出现问题。


因自身水平有限,暂时查不到原因。
近日,在本论坛中搜索到一篇代码人生坛友发表的有关用STC8H普通IO模式驱动2812的文章(链接: https://www.stcaimcu.com/forum.p ... =310&highlight=2812
),于是参考相关代码,将其代码添加到以前的一个《通过USB-HID实现不断电下载》的项目中,结果显示不甚正常。
最后,确定直接使用从论坛下载的项目(只重新定义驱动ws2812的IO口),结果完全正常!
https://www.bilibili.com/video/BV1NC4y1R7ei/

感谢代码人生坛友的分享!感谢STC为我们提供的交流园地!


Snapdragon 发表于 2023-12-13 14:53:25

第一张图片里的问题明显就是时序不太对,之前我碰到过。
最准确的当然还是用硬件SPI、PWM驱动。
但STC的单片机一般每条指令的周期都是明确、固定的,所以用STC模拟驱动WS2812要容易的多。

soma 发表于 2024-3-10 14:21:23

ws2812就时隙太短了

神农鼎 发表于 2024-3-10 14:47:52


用官方 最完美 的 SPI 解决方案



SPI DMA 输出控制WS2812三基色彩灯程序,不加反相器,STC8/STC32 - DMA: 支持4组串口,3组SPI,I2C,TFT-i8080/M6800,ADC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

DebugLab 发表于 2024-3-10 21:49:52

注意不能不同品牌不同批次混用,时序是有差异的,我测出好几种时序,都不一样,准确的做法是只接一个2812,先用大概的时序点亮,再发多个2812的数据,测它的输出,因为它肯定不会自相矛盾,照着它输出的时序调,才是最准的,如果需要批量制造或厂商不确定,就多测几款,测试出兼容性最好的时序,避免换了另一个厂家或批次的2812就又不好使了

xxkj2010 发表于 2024-3-11 08:13:06

DebugLab 发表于 2024-3-10 21:49
注意不能不同品牌不同批次混用,时序是有差异的,我测出好几种时序,都不一样,准确的做法是只接一个2812, ...

居然还有这样的内卷,长见识了。

晓飛飛 发表于 2024-3-11 16:16:07

soma 发表于 2024-3-10 14:21
ws2812就时隙太短了

固定刷新率的情况下,时隙越短,支持的级联数越多,如果觉得时隙比较困扰,可以考虑选择同步时钟的双线幻彩LED,那个是DAT和CLK双信号的,想快就快想慢就慢,除了线多简直不要太方便。

21cnsound 发表于 2024-9-3 22:07:12

DebugLab 发表于 2024-3-10 21:49
注意不能不同品牌不同批次混用,时序是有差异的,我测出好几种时序,都不一样,准确的做法是只接一个2812, ...

准确的做法是只接一个2812,先用大概的时序点亮,再发多个2812的数据,测它的输出,因为它肯定不会自相矛盾,照着它输出的时序调,才是最准的------------我之前理解输出整形功能仅仅是上升沿和下降沿整形的更陡,难道连高低电平的长短也给“整形”,请问用逻辑分析仪或示波器验证过吗?

DebugLab 发表于 2024-9-3 22:37:07

21cnsound 发表于 2024-9-3 22:07
准确的做法是只接一个2812,先用大概的时序点亮,再发多个2812的数据,测它的输出,因为它肯定不会自相矛 ...

验证过,每个2812内部都有自己的时钟(停止发数据,2812仍然会输出PWM,快速移动可见频闪,说明有自己的时钟,是数字的PWM,而不是模拟信号调光),按时序转发的,长短也会修改

嵌入式之路 发表于 2024-9-4 00:50:45

也可以看看我帖子的代码 也是纯io
页: [1] 2
查看完整版本: 用STC8H驱动ws2812成功,感谢代码人生坛友!