3个不稳定版本
0.2.0 | 2019年5月17日 |
---|---|
0.1.1 | 2019年5月1日 |
0.1.0 | 2019年5月1日 |
#10 在 #texas
每月 26次下载
用于 nucleo-f401re
15KB
371 行
TPA2016D2
TI TPA2016D2立体声类D放大器的嵌入式-hal驱动程序。
注意
- 最大i2c时钟400 kHz
- 数据表
示例
#![no_main]
#![no_std]
use cortex_m_rt::entry;
use cortex_m_semihosting::hprintln;
use panic_semihosting as _;
use nucleo_f401re::{i2c::I2c, prelude::*, stm32};
use tpa2016d2::Tpa2016d2;
#[entry]
fn main() -> ! {
// The Stm32 peripherals
let device = stm32::Peripherals::take().unwrap();
let rcc = device.RCC.constrain();
let clocks = rcc.cfgr.sysclk(84.mhz()).freeze();
let gpiob = device.GPIOB.split();
let scl = gpiob
.pb8
.into_alternate_af4()
.internal_pull_up(true)
.set_open_drain();
let sda = gpiob
.pb9
.into_alternate_af4()
.internal_pull_up(true)
.set_open_drain();
let i2c = I2c::i2c1(device.I2C1, (scl, sda), 200.khz(), clocks);
let mut tpa = Tpa2016d2::new(i2c);
// Read all registers
tpa.sync().unwrap();
// Get and print the registers
for i in 1..=7 {
let v = tpa.device_reg(i).unwrap();
hprintln!("{}: {}", i, v).unwrap();
}
// Update the gain
tpa.gain(32).unwrap();
// Should print 32
hprintln!("gain: {}", tpa.device_reg(5).unwrap()).unwrap();
loop {}
}
待办事项
- Agc预设
- 功能
依赖项
~71KB