```rust use static_cell::make_static; pub(crate) struct I2cBus2 { adc: Tla2528>>, board_temp: MCP9808>>, } impl I2cBus2 { pub fn new(peri: I2C1, scl: PB8, sda: PB7) -> Self { let mut i2c_config = Config::default(); i2c_config.transaction_timeout = Duration::from_millis(100); let i2c = I2c::new(peri, scl, sda, Irqs, NoDma, NoDma, khz(400), i2c_config); let i2c_ref_cell = &*make_static!(RefCell::new(i2c)); Self { adc: Tla2528::new(i2c::RefCellDevice::new(i2c_ref_cell), 0b_0001_0011), board_temp: MCP9808::new(i2c::RefCellDevice::new(i2c_ref_cell)), } } }