diff --git a/src/main/drivers/sdio_f4xx.c b/src/main/drivers/sdio_f4xx.c index 64fc27fdbb..5fc0321608 100644 --- a/src/main/drivers/sdio_f4xx.c +++ b/src/main/drivers/sdio_f4xx.c @@ -908,7 +908,7 @@ SD_Error_t SD_GetCardInfo(void) SD_CardInfo.CardCapacity = (SD_CardInfo.SD_csd.DeviceSize + 1) ; SD_CardInfo.CardCapacity *= (1 << (SD_CardInfo.SD_csd.DeviceSizeMul + 2)); SD_CardInfo.CardBlockSize = 1 << (SD_CardInfo.SD_csd.RdBlockLen); - SD_CardInfo.CardCapacity *= SD_CardInfo.CardBlockSize; + SD_CardInfo.CardCapacity = SD_CardInfo.CardCapacity * SD_CardInfo.CardBlockSize / 512; // In 512 byte blocks } else if(SD_CardType == SD_HIGH_CAPACITY) { diff --git a/src/main/drivers/sdio_f7xx.c b/src/main/drivers/sdio_f7xx.c index c025f0ee8b..64ea3e809b 100644 --- a/src/main/drivers/sdio_f7xx.c +++ b/src/main/drivers/sdio_f7xx.c @@ -890,7 +890,7 @@ SD_Error_t SD_GetCardInfo(void) SD_CardInfo.CardCapacity = (SD_CardInfo.SD_csd.DeviceSize + 1) ; SD_CardInfo.CardCapacity *= (1 << (SD_CardInfo.SD_csd.DeviceSizeMul + 2)); SD_CardInfo.CardBlockSize = 1 << (SD_CardInfo.SD_csd.RdBlockLen); - SD_CardInfo.CardCapacity *= SD_CardInfo.CardBlockSize; + SD_CardInfo.CardCapacity = SD_CardInfo.CardCapacity * SD_CardInfo.CardBlockSize / 512; // In 512 byte blocks } else if(SD_CardType == SD_HIGH_CAPACITY) { diff --git a/src/main/drivers/sdio_h7xx.c b/src/main/drivers/sdio_h7xx.c index 5001300ce9..3d79a4514a 100644 --- a/src/main/drivers/sdio_h7xx.c +++ b/src/main/drivers/sdio_h7xx.c @@ -291,7 +291,7 @@ SD_Error_t SD_GetCardInfo(void) SD_CardInfo.CardCapacity = (SD_CardInfo.SD_csd.DeviceSize + 1) ; SD_CardInfo.CardCapacity *= (1 << (SD_CardInfo.SD_csd.DeviceSizeMul + 2)); SD_CardInfo.CardBlockSize = 1 << (SD_CardInfo.SD_csd.RdBlockLen); - SD_CardInfo.CardCapacity *= SD_CardInfo.CardBlockSize; + SD_CardInfo.CardCapacity = SD_CardInfo.CardCapacity * SD_CardInfo.CardBlockSize / 512; // In 512 byte blocks } else if(SD_CardType == SD_HIGH_CAPACITY) { // Byte 7 Temp = (uint8_t)(SD_Handle.CSD[1] & 0x000000FF);