![]() |
zxcscm 发表于 2025-3-9 22:25 给你点赞,借楼给楼主说一声如果有兴趣的话可以看看我发的帖子,试试我的方案 |
流程问题。 2812在写入数据不容打断! 你的2812也是显示时钟的吗? 那你可以定时读RTC,对比秒数据,秒不同才更新2812和OLED, 更新2812时,把所有中断关闭就可以了。 2812和OLED都有锁存的,没必要时时更新数据,只有在需要时再更新。 如果你的2812不是显示秒,而是不停在在转,理论上可能要开硬件驱动,比如SPI+DMA, 这样你2812发送数据交给DMA去处理,MCU只要给DMA喂新数据就可以了。 ===以上仅供参考,没有相关的实验支持=== |
你的程序里读取时间并在OLED上显示和ws2812显示流水灯时肯定使用了大量的延时,这些延时是打断其他程序的根本原因。要想实现不同功能的流畅切换,要更换程序框架。比如使用状态机的机理,将各个功能进行时间切片,不用死等的延时,这样才可以。 |
用FreeRTOS吧,多线程跑这两个任务 |
顶一下 |