aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-nrf/src/uarte.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/embassy-nrf/src/uarte.rs b/embassy-nrf/src/uarte.rs
index 156dbbefd..aee91f803 100644
--- a/embassy-nrf/src/uarte.rs
+++ b/embassy-nrf/src/uarte.rs
@@ -219,7 +219,6 @@ impl<T: Instance> embassy::uart::Uart for Uarte<T> {
219 assert!(!self.tx_started()); 219 assert!(!self.tx_started());
220 220
221 T::state().tx_done.reset(); 221 T::state().tx_done.reset();
222 self.enable();
223 222
224 SendFuture { 223 SendFuture {
225 uarte: self, 224 uarte: self,
@@ -243,7 +242,6 @@ impl<T: Instance> embassy::uart::Uart for Uarte<T> {
243 assert!(!self.rx_started()); 242 assert!(!self.rx_started());
244 243
245 T::state().rx_done.reset(); 244 T::state().rx_done.reset();
246 self.enable();
247 245
248 ReceiveFuture { 246 ReceiveFuture {
249 uarte: self, 247 uarte: self,
@@ -257,7 +255,7 @@ pub struct SendFuture<'a, T>
257where 255where
258 T: Instance, 256 T: Instance,
259{ 257{
260 uarte: &'a Uarte<T>, 258 uarte: &'a mut Uarte<T>,
261 buf: &'a [u8], 259 buf: &'a [u8],
262} 260}
263 261
@@ -295,6 +293,8 @@ where
295 assert!(len <= EASY_DMA_SIZE); 293 assert!(len <= EASY_DMA_SIZE);
296 // TODO: panic if buffer is not in SRAM 294 // TODO: panic if buffer is not in SRAM
297 295
296 uarte.enable();
297
298 compiler_fence(Ordering::SeqCst); 298 compiler_fence(Ordering::SeqCst);
299 uarte 299 uarte
300 .instance 300 .instance
@@ -323,7 +323,7 @@ pub struct ReceiveFuture<'a, T>
323where 323where
324 T: Instance, 324 T: Instance,
325{ 325{
326 uarte: &'a Uarte<T>, 326 uarte: &'a mut Uarte<T>,
327 buf: &'a mut [u8], 327 buf: &'a mut [u8],
328} 328}
329 329
@@ -359,6 +359,8 @@ where
359 let ptr = buf.as_ptr(); 359 let ptr = buf.as_ptr();
360 let len = buf.len(); 360 let len = buf.len();
361 assert!(len <= EASY_DMA_SIZE); 361 assert!(len <= EASY_DMA_SIZE);
362
363 uarte.enable();
362 364
363 compiler_fence(Ordering::SeqCst); 365 compiler_fence(Ordering::SeqCst);
364 uarte 366 uarte