uint64_t sdcard_get_capacity_in_bytes(void) { if (sd_handle.Instance == NULL) { return 0; } HAL_SD_CardInfoTypeDef cardinfo; HAL_SD_GetCardInfo(&sd_handle, &cardinfo); return (uint64_t)cardinfo.LogBlockNbr * (uint64_t)cardinfo.LogBlockSize; }
STATIC mp_obj_t sd_info(mp_obj_t self) { if (sd_handle.Instance == NULL) { return mp_const_none; } HAL_SD_CardInfoTypeDef cardinfo; HAL_SD_GetCardInfo(&sd_handle, &cardinfo); // cardinfo.SD_csd and cardinfo.SD_cid have lots of info but we don't use them mp_obj_t tuple[3] = { mp_obj_new_int_from_ull((uint64_t)cardinfo.LogBlockNbr * (uint64_t)cardinfo.LogBlockSize), mp_obj_new_int_from_uint(cardinfo.LogBlockSize), mp_obj_new_int(cardinfo.CardType), }; return mp_obj_new_tuple(3, tuple); }
/** * @brief Get SD information about specific SD card. * @param CardInfo: Pointer to HAL_SD_CardInfoTypedef structure * @retval None */ void BSP_SD_GetCardInfo(BSP_SD_CardInfo *CardInfo) { /* Get SD card Information */ HAL_SD_GetCardInfo(&uSdHandle, CardInfo); }