01 WS2812
智能集成LED光源 WS2812[1] 通过简单的外部接口、特有的级联方案便于利用MCU完成多个LED控制,极大简化了LED控制接口。相比于传统的单片机LED IO口复用控制方案[2] ,使用WS2812则更加的简洁。
02 SPI驱动
stm32驱动可以参考https://blog.csdn.net/weixin_42078116/article/details/113472620/
之前试过stm32+spi+dma驱动,效果不错,让MC3172这个好东西不仅端口多,而且全部多线程,完全不需要dma就能实现舒服的切换显示。需要使用的话需要include“ws2812.h”,然后修改ws2812.h中#define WS2812_NUM 14 这里的14是ws2812灯的数量
之后对ws2812.c中ws2812_spi_init()中的GPCOM3_BASE_ADDR修改成想要的端口组,和想要的p0-3,这里采用的是p1为clk,p2为mosi(PA14),理论上可以改成任何想要的,注意只用到了spi的mosi,理论上clk不要配置也行,需要关注spi频率最好为2.5Mhz
之后就可以愉快的初始化然后使用了,可用函数如下,采用32位rgb数字,用的较多的算是WS2812_SetAll()设置全部灯,也可以设置一个然后调用WS2812_Show(void)显示
03 注意/坑
MC3172不能直接使用spi,必须像例程一样,先读取spi缓存区数据,再写入自己的数据,如果直接开启传输,可能会被while卡死
04 效果
视频效果可以到qq群查看
05 其他
颜色表可以在这里查看https://www.office26.com/rgb.html
06 源码
源码已上传码云https://gitee.com/wanglifree/mc3172-test.git
离线
感谢分享,看着很炫酷
离线