diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-04-17 21:48:47 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-04-17 21:48:47 +0200 |
| commit | 82dd7a5f8c08fe9b03b9d885ad992fcab1a9b00f (patch) | |
| tree | 32b06f4749bcfa2a0bea1286a898a462a384f3e2 | |
| parent | 0dfa19299224f28ab686062d472c0ccea72ffd5a (diff) | |
stm32/sdmmc: add init_card retry.
| -rw-r--r-- | examples/stm32f4/src/bin/sdmmc.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/examples/stm32f4/src/bin/sdmmc.rs b/examples/stm32f4/src/bin/sdmmc.rs index ebdfdb22d..eeecbd321 100644 --- a/examples/stm32f4/src/bin/sdmmc.rs +++ b/examples/stm32f4/src/bin/sdmmc.rs | |||
| @@ -39,7 +39,18 @@ async fn main(_spawner: Spawner) { | |||
| 39 | // Should print 400kHz for initialization | 39 | // Should print 400kHz for initialization |
| 40 | info!("Configured clock: {}", sdmmc.clock().0); | 40 | info!("Configured clock: {}", sdmmc.clock().0); |
| 41 | 41 | ||
| 42 | unwrap!(sdmmc.init_card(mhz(48)).await); | 42 | let mut err = None; |
| 43 | loop { | ||
| 44 | match sdmmc.init_card(mhz(24)).await { | ||
| 45 | Ok(_) => break, | ||
| 46 | Err(e) => { | ||
| 47 | if err != Some(e) { | ||
| 48 | info!("waiting for card error, retrying: {:?}", e); | ||
| 49 | err = Some(e); | ||
| 50 | } | ||
| 51 | } | ||
| 52 | } | ||
| 53 | } | ||
| 43 | 54 | ||
| 44 | let card = unwrap!(sdmmc.card()); | 55 | let card = unwrap!(sdmmc.card()); |
| 45 | 56 | ||
