sd卡读512MB的内存卡没问题,读4GB的就报错
解决方法
1.格式化sd卡
右键,格式化,选择fat32即可,如果有些保护,检查读卡器是否被锁。
2.修改代码
DRESULT ff_sdmmc_read(BYTE pdrv, BYTE* buff, DWORD sector, UINT count)
{
sdmmc_card_t* card = s_cards[pdrv];
assert(card);
for (int retry_count = 0; retry_count < 5; retry_count++) {
// int32_t start_time = esp_timer_get_time();
esp_err_t err = sdmmc_read_sectors(card, buff, sector, count);
if (err != ESP_OK) {
printf("[READ]Failed at sector %d, retry_count %d \n", sector, retry_count);
continue;
}
// int32_t stop_time = esp_timer_get_time() - start_time;
// Update performance counters and print benchmark
// sdmmc_benchmark_printf();
return RES_OK;
}
printf("[READ]Cannot read sector %d\n", sector);
return RES_ERROR;
}
多次调用sdmmc_read_sectors(card, buff, sector, count);即可。
参考