diff options
| -rw-r--r-- | embassy-stm32/src/usart/buffered.rs | 38 |
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 | ||
