stmhal: Add retry to SD card init.
This fixed an issue with a certain SD card sometimes not initialising first time round. See issue #822 for related, and thanks to @iabdalkader for the idea.
This commit is contained in:
parent
0c3955b506
commit
072bd07f17
@ -105,10 +105,13 @@ bool sdcard_power_on(void) {
|
||||
sd_handle.Init.HardwareFlowControl = SDIO_HARDWARE_FLOW_CONTROL_DISABLE;
|
||||
sd_handle.Init.ClockDiv = SDIO_TRANSFER_CLK_DIV;
|
||||
|
||||
// init the SD interface
|
||||
// init the SD interface, with retry if it's not ready yet
|
||||
HAL_SD_CardInfoTypedef cardinfo;
|
||||
if (HAL_SD_Init(&sd_handle, &cardinfo) != SD_OK) {
|
||||
goto error;
|
||||
for (int retry = 10; HAL_SD_Init(&sd_handle, &cardinfo) != SD_OK; retry--) {
|
||||
if (retry == 0) {
|
||||
goto error;
|
||||
}
|
||||
HAL_Delay(50);
|
||||
}
|
||||
|
||||
// configure the SD bus width for wide operation
|
||||
|
Loading…
Reference in New Issue
Block a user