diff options
| author | chemicstry <[email protected]> | 2022-03-18 00:46:46 +0200 |
|---|---|---|
| committer | chemicstry <[email protected]> | 2022-03-18 00:46:46 +0200 |
| commit | ca88ace98d4bb751ac942b122c1a2006171fa1bd (patch) | |
| tree | da68aff883d24e9178ed1b075ae233d419160877 | |
| parent | 5f39f136169bd1d2057d9c84ca1d49b21a2c50e0 (diff) | |
Reset peripherals on enable
| -rw-r--r-- | embassy-stm32/src/i2c/v1.rs | 1 | ||||
| -rw-r--r-- | embassy-stm32/src/i2c/v2.rs | 1 | ||||
| -rw-r--r-- | embassy-stm32/src/usart/mod.rs | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/embassy-stm32/src/i2c/v1.rs b/embassy-stm32/src/i2c/v1.rs index f280187e5..e0b151142 100644 --- a/embassy-stm32/src/i2c/v1.rs +++ b/embassy-stm32/src/i2c/v1.rs | |||
| @@ -32,6 +32,7 @@ impl<'d, T: Instance> I2c<'d, T> { | |||
| 32 | unborrow!(scl, sda); | 32 | unborrow!(scl, sda); |
| 33 | 33 | ||
| 34 | T::enable(); | 34 | T::enable(); |
| 35 | T::reset(); | ||
| 35 | 36 | ||
| 36 | unsafe { | 37 | unsafe { |
| 37 | scl.set_as_af(scl.af_num(), AFType::OutputOpenDrain); | 38 | scl.set_as_af(scl.af_num(), AFType::OutputOpenDrain); |
diff --git a/embassy-stm32/src/i2c/v2.rs b/embassy-stm32/src/i2c/v2.rs index 5e9de8fd3..f3714cbcb 100644 --- a/embassy-stm32/src/i2c/v2.rs +++ b/embassy-stm32/src/i2c/v2.rs | |||
| @@ -53,6 +53,7 @@ impl<'d, T: Instance, TXDMA, RXDMA> I2c<'d, T, TXDMA, RXDMA> { | |||
| 53 | unborrow!(irq, scl, sda, tx_dma, rx_dma); | 53 | unborrow!(irq, scl, sda, tx_dma, rx_dma); |
| 54 | 54 | ||
| 55 | T::enable(); | 55 | T::enable(); |
| 56 | T::reset(); | ||
| 56 | 57 | ||
| 57 | unsafe { | 58 | unsafe { |
| 58 | scl.set_as_af(scl.af_num(), AFType::OutputOpenDrain); | 59 | scl.set_as_af(scl.af_num(), AFType::OutputOpenDrain); |
diff --git a/embassy-stm32/src/usart/mod.rs b/embassy-stm32/src/usart/mod.rs index 0466065f1..caea8d71b 100644 --- a/embassy-stm32/src/usart/mod.rs +++ b/embassy-stm32/src/usart/mod.rs | |||
| @@ -200,6 +200,7 @@ impl<'d, T: Instance, TxDma, RxDma> Uart<'d, T, TxDma, RxDma> { | |||
| 200 | unborrow!(_inner, rx, tx, tx_dma, rx_dma); | 200 | unborrow!(_inner, rx, tx, tx_dma, rx_dma); |
| 201 | 201 | ||
| 202 | T::enable(); | 202 | T::enable(); |
| 203 | T::reset(); | ||
| 203 | let pclk_freq = T::frequency(); | 204 | let pclk_freq = T::frequency(); |
| 204 | 205 | ||
| 205 | // TODO: better calculation, including error checking and OVER8 if possible. | 206 | // TODO: better calculation, including error checking and OVER8 if possible. |
