diff options
| -rw-r--r-- | embassy-stm32/src/usart/mod.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/embassy-stm32/src/usart/mod.rs b/embassy-stm32/src/usart/mod.rs index 5c96e202d..6f838cce5 100644 --- a/embassy-stm32/src/usart/mod.rs +++ b/embassy-stm32/src/usart/mod.rs | |||
| @@ -535,9 +535,12 @@ fn blocking_flush(info: &Info) -> Result<(), Error> { | |||
| 535 | let r = info.regs; | 535 | let r = info.regs; |
| 536 | while !sr(r).read().tc() {} | 536 | while !sr(r).read().tc() {} |
| 537 | 537 | ||
| 538 | // Enable Receiver after transmission complete for Half-Duplex mode | 538 | // Disable Transmitter and enable receiver after transmission complete for Half-Duplex mode |
| 539 | if r.cr3().read().hdsel() { | 539 | if r.cr3().read().hdsel() { |
| 540 | r.cr1().modify(|reg| reg.set_re(true)); | 540 | r.cr1().modify(|reg| { |
| 541 | reg.set_te(false); | ||
| 542 | reg.set_re(true); | ||
| 543 | }); | ||
| 541 | } | 544 | } |
| 542 | 545 | ||
| 543 | Ok(()) | 546 | Ok(()) |
