2个不稳定版本
0.2.0 | 2022年4月15日 |
---|---|
0.1.0 | 2022年4月9日 |
#1100 在 嵌入式开发
6KB
嵌入式-hal blocking spi traits 的 WS2812 驱动程序
此crate通过使用 embedded_hal::spi::blocking
为 smart-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