2个不稳定版本
0.2.0 | 2022年4月15日 |
---|---|
0.1.0 | 2022年4月9日 |
#14 in #ws2812
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