aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-stm32/src/usart/buffered.rs38
1 files changed, 34 insertions, 4 deletions
diff --git a/embassy-stm32/src/usart/buffered.rs b/embassy-stm32/src/usart/buffered.rs
index cbc13a342..1c0a6d697 100644
--- a/embassy-stm32/src/usart/buffered.rs
+++ b/embassy-stm32/src/usart/buffered.rs
@@ -233,7 +233,7 @@ impl<'d, T: BasicInstance> BufferedUart<'d, T> {
233 configure(r, &config, T::frequency(), T::KIND, true, true)?; 233 configure(r, &config, T::frequency(), T::KIND, true, true)?;
234 234
235 r.cr1().modify(|w| { 235 r.cr1().modify(|w| {
236 #[cfg(lpuart_v2)] 236 #[cfg(usart_v4)]
237 w.set_fifoen(true); 237 w.set_fifoen(true);
238 238
239 w.set_rxneie(true); 239 w.set_rxneie(true);
@@ -254,7 +254,17 @@ impl<'d, T: BasicInstance> BufferedUart<'d, T> {
254 } 254 }
255 255
256 pub fn set_config(&mut self, config: &Config) -> Result<(), ConfigError> { 256 pub fn set_config(&mut self, config: &Config) -> Result<(), ConfigError> {
257 reconfigure::<T>(config) 257 reconfigure::<T>(config)?;
258
259 T::regs().cr1().modify(|w| {
260 #[cfg(usart_v4)]
261 w.set_fifoen(true);
262
263 w.set_rxneie(true);
264 w.set_idleie(true);
265 });
266
267 Ok(())
258 } 268 }
259} 269}
260 270
@@ -334,7 +344,17 @@ impl<'d, T: BasicInstance> BufferedUartRx<'d, T> {
334 } 344 }
335 345
336 pub fn set_config(&mut self, config: &Config) -> Result<(), ConfigError> { 346 pub fn set_config(&mut self, config: &Config) -> Result<(), ConfigError> {
337 reconfigure::<T>(config) 347 reconfigure::<T>(config)?;
348
349 T::regs().cr1().modify(|w| {
350 #[cfg(usart_v4)]
351 w.set_fifoen(true);
352
353 w.set_rxneie(true);
354 w.set_idleie(true);
355 });
356
357 Ok(())
338 } 358 }
339} 359}
340 360
@@ -408,7 +428,17 @@ impl<'d, T: BasicInstance> BufferedUartTx<'d, T> {
408 } 428 }
409 429
410 pub fn set_config(&mut self, config: &Config) -> Result<(), ConfigError> { 430 pub fn set_config(&mut self, config: &Config) -> Result<(), ConfigError> {
411 reconfigure::<T>(config) 431 reconfigure::<T>(config)?;
432
433 T::regs().cr1().modify(|w| {
434 #[cfg(usart_v4)]
435 w.set_fifoen(true);
436
437 w.set_rxneie(true);
438 w.set_idleie(true);
439 });
440
441 Ok(())
412 } 442 }
413} 443}
414 444