diff options
| author | Ralf <[email protected]> | 2022-05-11 19:57:56 +0200 |
|---|---|---|
| committer | Ralf <[email protected]> | 2022-05-12 09:09:30 +0200 |
| commit | f4677469f9e9fc7bdc24577d9111636b4de2df46 (patch) | |
| tree | 9d8601b1fe9a512e2a0efedb76ef017ca87e62bf | |
| parent | 604051777419591cf66f5d06196cf16d3e399752 (diff) | |
stm32/usart: Data length is including parity. To get e.g. 8E1 you need to choose 9 data bits
| -rw-r--r-- | embassy-stm32/src/usart/mod.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/embassy-stm32/src/usart/mod.rs b/embassy-stm32/src/usart/mod.rs index 6feecd184..472680113 100644 --- a/embassy-stm32/src/usart/mod.rs +++ b/embassy-stm32/src/usart/mod.rs | |||
| @@ -219,7 +219,11 @@ impl<'d, T: Instance, TxDma, RxDma> Uart<'d, T, TxDma, RxDma> { | |||
| 219 | w.set_ue(true); | 219 | w.set_ue(true); |
| 220 | w.set_te(true); | 220 | w.set_te(true); |
| 221 | w.set_re(true); | 221 | w.set_re(true); |
| 222 | w.set_m0(vals::M0::BIT8); | 222 | w.set_m0(if config.parity != Parity::ParityNone { |
| 223 | vals::M0::BIT9 | ||
| 224 | } else { | ||
| 225 | vals::M0::BIT8 | ||
| 226 | }); | ||
| 223 | w.set_pce(config.parity != Parity::ParityNone); | 227 | w.set_pce(config.parity != Parity::ParityNone); |
| 224 | w.set_ps(match config.parity { | 228 | w.set_ps(match config.parity { |
| 225 | Parity::ParityOdd => vals::Ps::ODD, | 229 | Parity::ParityOdd => vals::Ps::ODD, |
