1个不稳定版本
0.1.0 | 2024年1月4日 |
---|
#1149 in 嵌入式开发
21KB
369 代码行
使用Rust和embedded-hal
为WM8994音频编解码器提供一个最小化的i2s驱动程序。
lib.rs
:
为WM8994音频编解码器提供一个最小化的i2s驱动程序。
使用示例
use wm8994::Wm8994;
let mut delay = ctx.core.SYST.delay(ccdr.clocks);
let gpiod = ctx.device.GPIOD.split(ccdr.peripheral.GPIOD);
let scl = gpiod.pd12.into_alternate_open_drain();
let sda = gpiod.pd13.into_alternate_open_drain();
let i2c = ctx.device.I2C4.i2c((scl, sda), 100.kHz(), ccdr.peripheral.I2C4, &ccdr.clocks);
let mut driver = Wm8994::new(wm8994::Config { address: 0x1a }, &i2c, &delay);
// init_headphone() expects MCLK to be present
driver.init_headphone().unwrap();
局限性
此驱动程序将wm8994配置为从I2S输出到耳机输出播放音频。格式固定为48 Khz,16位I2S。
探测i2c的地址
use wm8994::Wm8994;
for addr in 0..0b111110 {
let mut driver = Wm8994::new(wm8994::Config { address: addr }, &i2c, &delay);
if let Ok(wm8994::registers::FAMILY_ID) = driver.get_family() {
info!("Found at {:#04x}", addr);
}
}
依赖项
~71KB