Merge pull request #3928 from agrif/stm32-i2c-set-config
Fix SetConfig implementation for STM32 I2C v2
This commit is contained in:
commit
3a3ab6cded
@ -855,7 +855,12 @@ impl<'d, M: Mode> SetConfig for I2c<'d, M> {
|
||||
type Config = Hertz;
|
||||
type ConfigError = ();
|
||||
fn set_config(&mut self, config: &Self::Config) -> Result<(), ()> {
|
||||
self.info.regs.cr1().modify(|reg| {
|
||||
reg.set_pe(false);
|
||||
});
|
||||
|
||||
let timings = Timings::new(self.kernel_clock, *config);
|
||||
|
||||
self.info.regs.timingr().write(|reg| {
|
||||
reg.set_presc(timings.prescale);
|
||||
reg.set_scll(timings.scll);
|
||||
@ -864,6 +869,10 @@ impl<'d, M: Mode> SetConfig for I2c<'d, M> {
|
||||
reg.set_scldel(timings.scldel);
|
||||
});
|
||||
|
||||
self.info.regs.cr1().modify(|reg| {
|
||||
reg.set_pe(true);
|
||||
});
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user