#spi #constants #write #ws2812 #pattern #proc-macro #generate

ws2812-spi-write-constants

用于生成WS2812控制SPI常数的ProcMacros

2个不稳定版本

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

#14 in #ws2812


用于 ws2812-blocking-spi

Apache-2.0 OR MIT

5KB

嵌入式-hal阻塞spi特质的WS2812驱动程序

此crate添加了一个使用 embedded_hal::spi::blocking 的实现,用于 smart-leds

smart-leds项目的一部分ws2821 crate使用了SPI的 FullDuplex 实现,这在所有平台上都没有实现。

此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());

lib.rs:

包含常量生成的宏

WS2812 SPI数据使用SPI写入来定义发送到neopixel芯片的高低模式,以解释为值

此crate预先计算所需的特定模式。

依赖项

~1.5MB
~35K SLoC