diff options
| -rw-r--r-- | embassy-nrf/src/buffered_uarte.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs index eb0b1b0cd..47f32fac8 100644 --- a/embassy-nrf/src/buffered_uarte.rs +++ b/embassy-nrf/src/buffered_uarte.rs | |||
| @@ -429,14 +429,15 @@ impl<'a, U: UarteInstance, T: TimerInstance> Drop for StateInner<'a, U, T> { | |||
| 429 | fn drop(&mut self) { | 429 | fn drop(&mut self) { |
| 430 | let r = U::regs(); | 430 | let r = U::regs(); |
| 431 | 431 | ||
| 432 | self.timer.stop(); | ||
| 433 | |||
| 432 | r.inten.reset(); | 434 | r.inten.reset(); |
| 433 | r.events_rxto.reset(); | 435 | r.events_rxto.reset(); |
| 434 | r.tasks_stoprx.write(|w| unsafe { w.bits(1) }); | 436 | r.tasks_stoprx.write(|w| unsafe { w.bits(1) }); |
| 435 | |||
| 436 | r.events_txstopped.reset(); | 437 | r.events_txstopped.reset(); |
| 437 | r.tasks_stoptx.write(|w| unsafe { w.bits(1) }); | 438 | r.tasks_stoptx.write(|w| unsafe { w.bits(1) }); |
| 438 | while r.events_txstopped.read().bits() == 0 {} | ||
| 439 | 439 | ||
| 440 | while r.events_txstopped.read().bits() == 0 {} | ||
| 440 | while r.events_rxto.read().bits() == 0 {} | 441 | while r.events_rxto.read().bits() == 0 {} |
| 441 | 442 | ||
| 442 | r.enable.write(|w| w.enable().disabled()); | 443 | r.enable.write(|w| w.enable().disabled()); |
