WS2812B是一款贴片RGB灯。由于采用了单总线通讯,所以需要特别关注下它的通讯时序。


调试细节:
本来以为会是一个比较简单的调试,结果还是花了很长时间才调试完成。
首先是关于ESP32的纳秒级延时确定,当时按照空指令始终调试不出来。之前在STM32平台上的nop()函数也不知道怎么用。
后来发掘出了一个比较简单的办法。就是一个个试,然后在main函数中按照1S的频率打印调试信息来倒推ns级别的延时是否可靠。
注意:在ESP32不能使用空语句加;来进行空指令延时,需要使用操作语句。
然后在main函数中按照1S的频率打印调试信息:
基本确定了ns级别延时后,就可以按照时序来写ws2812的驱动函数啦。
ESP32的IO口没有进行初始化配置!
配置完IO口就可以进行WS2812B驱动啦。不过还是出现了一些小bug,比如初始化第一次点灯,绿色灯珠总是会不受控制地自动点亮!后来发现在IO初始化函数前预先执行一次点亮指令就可以消除这个bug!Nice!
至此,ESP32对于WS2812B的驱动函数就调试完成啦。
对于这个说起来简单但是异常曲折的小demo项目积累了如下经验:
1.ESP32的IO也是需要进行初始化配置的。
2.MCU的单指令确实能够进行粗略的ns级延时,为后续调试一些芯片时序提供了新的方法。
3.ESP32的GPIO8需要使用一个10K电阻上拉3.3V,否则无法进行程序下载。
2023-05-04 细节补充
1.在后续demo项目完善该驱动时,发现会出现初始化后,在别处点灯时,依然会出现亮出绿灯现象。
后来增加了灯珠的复位函数:
然后初始化变更为:
如果需要在别的函数位置电灯,择执行以下函数即可,亲测有效。
到此这篇st7735s驱动详解(st7032驱动程序)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/jszy-qdgl/36984.html