nrf/buffered_uarte: add set_baudrate
This commit is contained in:
parent
2616467377
commit
41160c0d8d
1 changed files with 13 additions and 0 deletions
|
@ -203,6 +203,19 @@ impl<'a, U: Instance, T: TimerInstance, P1: ConfigurablePpi, P2: ConfigurablePpi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn set_baudrate(self: Pin<&mut Self>, baudrate: Baudrate) {
|
||||||
|
self.inner().with(|state, _irq| {
|
||||||
|
let timeout = 0x8000_0000 / (baudrate as u32 / 40);
|
||||||
|
state.timer.cc[0].write(|w| unsafe { w.bits(timeout) });
|
||||||
|
state.timer.tasks_clear.write(|w| unsafe { w.bits(1) });
|
||||||
|
|
||||||
|
state
|
||||||
|
.uarte
|
||||||
|
.baudrate
|
||||||
|
.write(|w| w.baudrate().variant(baudrate));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
fn inner(self: Pin<&mut Self>) -> Pin<&mut PeripheralMutex<State<'a, U, T, P1, P2>>> {
|
fn inner(self: Pin<&mut Self>) -> Pin<&mut PeripheralMutex<State<'a, U, T, P1, P2>>> {
|
||||||
unsafe { Pin::new_unchecked(&mut self.get_unchecked_mut().inner) }
|
unsafe { Pin::new_unchecked(&mut self.get_unchecked_mut().inner) }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue