#led-driver #led-matrix #interface #platform #lumissil #write #16x12

无需std is31fl3733

一个与IS31FL3733(16x12 LED矩阵驱动器)接口的平台无关的驱动程序,使用Rust编写

1个不稳定版本

0.5.0 2024年1月25日

#1702 in 嵌入式开发

自定义许可证

34KB
706

is31fl3733-rs

Rust接口,用于Lumissil IS31FL3733 16x12 LED驱动器。

该软件包目前仅包含启动芯片和控制LED所需的最小功能。

LED的开关状态控制通过set_leds函数实现,该函数直接写入芯片内部状态。24字节缓冲区中的每个位依次映射到一个LED。

类似地,亮度通过set_brightness控制,该函数写入芯片的PWM状态。在这种情况下,每个LED都有自己的字节来确定亮度。

整体最大亮度限制可以使用set_global_control_current进行调整。

有关更多信息,请参阅数据手册

保持内部状态并与之比较,以将总线写入量保持在最低。

示例

let is31fl3733 = IS31FL3733::is31fl3733::new();

is31fl3733.initialize()?;
is31fl3733.set_global_control_current(0xff)?; // Maximum brightness limit
is31fl3733.set_leds(&[0xffu8; 24])?; // Turn on all LEDs

// Set each LED's brightness to its index value
let brightness: [u8; 192] = core::array::from_fn(|i| i);
is31fl3733.set_brightness(&brightness);

TBD

  • LED开路/短路状态检测
  • 中断支持
  • 自动呼吸模式

免责声明:此库不是官方产品,请自行承担使用风险。

依赖项

~725KB
~13K SLoC