一、技术背景
之前移植使用STM32来做MCU,但是这两年STM32离谱的价格和供货情况直接劝退大部分互联网企业。国产的MCU厂家也抓住机会,迅猛抢占市场,国民技术是较为典型的一个厂家。
在很多时候,一个消费性的居家类别的智能硬件产品,有一个状态灯是很有必要的。我们可能一开始了解到、使用的是引线型的RGB,长这样:
它一般是有4个引脚:
阳极/阴极(根据共阳/共阴类型);
R(red);
G(green);
B(blue)。
当然为了小型化,这种RGB也会有各种贴片型的。
如果要控制它的话,我们一般是通过配置它RGB三个引脚的限流电阻,再根据不同引脚的电平状态来实现状态灯的发光颜色。但是这样会有个问题:颜色不容易精准控制,而且IO资源占用较多:3个。
而WS2812实现了通过1个IO发送24bit数据来精准控制灯珠颜色功能和贴片小型化。因此它具有很高的应用价值。
之前有在STM32上实现了通过PWM+DMA来控制WS2812 的功能,网上也有很多教程,这里不再详述。本次来实现在N32G031xxxx上实现PWM+D