STM32F103C8T6驱动WS2812b灯条
几天小朋友到别人家玩,看上了人家的金鱼,人家就给了她一条小金鱼,有了小金鱼,怕它没氧气挂掉,买了一个氧气泵,没有东西喂它也不行,又买了一包鱼料,又因为它太孤单了,又买了几条小金鱼给它做伴,几条小金鱼老是在水桶里不怎么好看,又去买了个鱼缸,有了鱼缸太单调了,也不太好看,想了想加点灯光,后来找出吃灰多年的老灯条——WS2812b。
这个灯条以前使用新唐的N76E0003单片机驱动过,这款单片机是51内核的,之前驱动也没什么问题,今天使用stm32f103c8tc6来驱动,有了新的发现,首先来说一下ws2812b的驱动原理,直接上图好了。
驱动它很简单,驱动一个灯的话,给它发24位数据就行了。
新发现是:stm32f103是72M主频,按理来说更改IO口状态只需要14ns左右就行了,可是在实际使用中,更改IO口的状态需要500ns左右,使用的是hal库,其他库还没试验过,所以在驱动ws2812b时,码0的高电平状态都不用延时,直接拉低就好了。