diff options
| author | Badr Bouslikhin <[email protected]> | 2024-08-30 18:52:23 +0200 |
|---|---|---|
| committer | Badr Bouslikhin <[email protected]> | 2024-08-30 18:52:23 +0200 |
| commit | f6d92b76111d8619c92b13aa28e765abe356465c (patch) | |
| tree | 86ad2f63ec4674f9c5c7c3d3045f099513aede0e | |
| parent | f0a86070512ad739641cee7d9fa39d63f5c8a9f6 (diff) | |
fix(stm32): disable transmitter during half-duplex read
| -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(()) |
