aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-10-13 20:10:16 +0000
committerGitHub <[email protected]>2024-10-13 20:10:16 +0000
commit2f6273bb5df1ce2aacc0470b4f3194db6687e0d1 (patch)
tree8947d4ecc40e04d11cdb0e733b0ed1fb520bcc4d
parenteea08d761d6cf7052efe96a5a38bdcd82a9498ed (diff)
parent55f41da66c1b6ed9ef4aea8e91977d6ab46c3523 (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.rs7
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(())