diff options
| author | Dario Nieuwenhuis <[email protected]> | 2024-10-13 20:10:16 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-10-13 20:10:16 +0000 |
| commit | 2f6273bb5df1ce2aacc0470b4f3194db6687e0d1 (patch) | |
| tree | 8947d4ecc40e04d11cdb0e733b0ed1fb520bcc4d | |
| parent | eea08d761d6cf7052efe96a5a38bdcd82a9498ed (diff) | |
| parent | 55f41da66c1b6ed9ef4aea8e91977d6ab46c3523 (diff) | |
Merge pull request #3299 from badrbouslikhin/main
fix(stm32): disable transmitter during during half-duplex flush
| -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(()) |
