aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-stm32')
-rw-r--r--embassy-stm32/src/usart/mod.rs32
1 files changed, 26 insertions, 6 deletions
diff --git a/embassy-stm32/src/usart/mod.rs b/embassy-stm32/src/usart/mod.rs
index d21e5c47c..6d6e678c8 100644
--- a/embassy-stm32/src/usart/mod.rs
+++ b/embassy-stm32/src/usart/mod.rs
@@ -1270,8 +1270,14 @@ fn configure(
1270 1270
1271 let (mul, brr_min, brr_max) = match kind { 1271 let (mul, brr_min, brr_max) = match kind {
1272 #[cfg(any(usart_v3, usart_v4))] 1272 #[cfg(any(usart_v3, usart_v4))]
1273 Kind::Lpuart => (256, 0x300, 0x10_0000), 1273 Kind::Lpuart => {
1274 Kind::Uart => (1, 0x10, 0x1_0000), 1274 trace!("USART: Kind::Lpuart");
1275 (256, 0x300, 0x10_0000)
1276 }
1277 Kind::Uart => {
1278 trace!("USART: Kind::Uart");
1279 (1, 0x10, 0x1_0000)
1280 }
1275 }; 1281 };
1276 1282
1277 fn calculate_brr(baud: u32, pclk: u32, presc: u32, mul: u32) -> u32 { 1283 fn calculate_brr(baud: u32, pclk: u32, presc: u32, mul: u32) -> u32 {
@@ -1374,21 +1380,35 @@ fn configure(
1374 // configure word size 1380 // configure word size
1375 // if using odd or even parity it must be configured to 9bits 1381 // if using odd or even parity it must be configured to 9bits
1376 w.set_m0(if config.parity != Parity::ParityNone { 1382 w.set_m0(if config.parity != Parity::ParityNone {
1383 trace!("USART: m0: vals::M0::BIT9");
1377 vals::M0::BIT9 1384 vals::M0::BIT9
1378 } else { 1385 } else {
1386 trace!("USART: m0: vals::M0::BIT8");
1379 vals::M0::BIT8 1387 vals::M0::BIT8
1380 }); 1388 });
1381 // configure parity 1389 // configure parity
1382 w.set_pce(config.parity != Parity::ParityNone); 1390 w.set_pce(config.parity != Parity::ParityNone);
1383 w.set_ps(match config.parity { 1391 w.set_ps(match config.parity {
1384 Parity::ParityOdd => vals::Ps::ODD, 1392 Parity::ParityOdd => {
1385 Parity::ParityEven => vals::Ps::EVEN, 1393 trace!("USART: set_ps: vals::Ps::ODD");
1386 _ => vals::Ps::EVEN, 1394 vals::Ps::ODD
1395 }
1396 Parity::ParityEven => {
1397 trace!("USART: set_ps: vals::Ps::EVEN");
1398 vals::Ps::EVEN
1399 }
1400 _ => {
1401 trace!("USART: set_ps: vals::Ps::EVEN");
1402 vals::Ps::EVEN
1403 }
1387 }); 1404 });
1388 #[cfg(not(usart_v1))] 1405 #[cfg(not(usart_v1))]
1389 w.set_over8(vals::Over8::from_bits(over8 as _)); 1406 w.set_over8(vals::Over8::from_bits(over8 as _));
1390 #[cfg(usart_v4)] 1407 #[cfg(usart_v4)]
1391 w.set_fifoen(true); 1408 {
1409 trace!("USART: set_fifoen: true (usart_v4)");
1410 w.set_fifoen(true);
1411 }
1392 }); 1412 });
1393 1413
1394 Ok(()) 1414 Ok(())