#ws2812 #spi #embedded-hal #blocking #neopixel #write #driver

no-std ws2812-blocking-spi

基于 embedded_hal::blocking::spi::Write 的 WS2812 驱动程序

2个不稳定版本

0.2.0 2022年4月15日
0.1.0 2022年4月9日

#1100嵌入式开发

Apache-2.0 OR MIT

6KB

嵌入式-hal blocking spi traits 的 WS2812 驱动程序

此crate通过使用 embedded_hal::spi::blockingsmart-leds 添加了实现

smart-leds项目中的ws2821crate使用了一个 FullDuplex 的SPI实现,该实现并非所有平台都支持。

此crate预先生成了发送到LED所需的所有8位模式的常量,这增加了1KB的闪存空间开销。

使用示例

use ws2812_blocking_spi::Ws2812BlockingWriter;

// Requires a SPI interface. LEDs data pin should be
// connected to the MOSI pin (master-in-slave-out)
let spi: embedded_hal::blocking::spi::Write<u8> = /*... */;

// setup some data to write
let mut data = [RGB8::default(); 3];
data[0] = [0xFF_u8, 0_u8, 0_u8].into();  // Full RED
data[1] = [0_u8, 0xFF_u8, 0_u8].into();  // Full GREEN
data[2] = [0_u8, 0_u8, 0xFF_u8].into();  // Full BLUE

// Create a writer
let mut leds = Ws2812BlockingWriter::new(spi);

// does the data write
leds.write(data.iter().cloned());

依赖项

~1.5MB
~38K SLoC