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 89d92dda2..af34b548e 100644 --- a/embassy-stm32/src/usart/mod.rs +++ b/embassy-stm32/src/usart/mod.rs | |||
| @@ -526,9 +526,12 @@ fn blocking_flush(info: &Info) -> Result<(), Error> { | |||
| 526 | let r = info.regs; | 526 | let r = info.regs; |
| 527 | while !sr(r).read().tc() {} | 527 | while !sr(r).read().tc() {} |
| 528 | 528 | ||
| 529 | // Enable Receiver after transmission complete for Half-Duplex mode | 529 | // Disable Transmitter and enable receiver after transmission complete for Half-Duplex mode |
| 530 | if r.cr3().read().hdsel() { | 530 | if r.cr3().read().hdsel() { |
| 531 | r.cr1().modify(|reg| reg.set_re(true)); | 531 | r.cr1().modify(|reg| { |
| 532 | reg.set_te(false); | ||
| 533 | reg.set_re(true); | ||
| 534 | }); | ||
| 532 | } | 535 | } |
| 533 | 536 | ||
| 534 | Ok(()) | 537 | Ok(()) |
