ESP32报错 sdmmc_sd: sdmmc_check_scr: send_scr returned 0x109 的解决办法

遇到 E (396) sdmmc_sd: sdmmc_check_scr: send_scr returned 0x109 错误时,通常表示在与 SD 卡通信时出现了问题。这个错误代码 0x109 可能与 SD 卡的初始化或通信频率有关。
可以尝试降低 SDMMC 的默认频率来解决这个问题。
以下是具体步骤:

  1. 找到 sd_protocol_types.h 文件
    这个文件通常位于 ESP-IDF 的组件目录中。具体路径可能类似于 v5.4\esp-idf\components\sdmmc\include\sd_protocol_types.h
  2. 定位到 SDMMC_FREQ_DEFAULT 宏定义
    打开 sd_protocol_types.h 文件,找到 SDMMC_FREQ_DEFAULT 的定义。
  3. SDMMC_FREQ_DEFAULT 的值从 20000 修改为 5000
    修改后的代码应为: c #define SDMMC_FREQ_DEFAULT 5000
    以下是详细的修改步骤:

步骤 1: 找到 sd_protocol_types.h 文件

sd_protocol_types.h 文件位于 v5.4\esp-idf\components\sdmmc\include\sd_protocol_types.h,你可以使用文件管理器或命令行工具找到该文件。

步骤 2: 定位到 SDMMC_FREQ_DEFAULT 宏定义

打开 sd_protocol_types.h 文件,找到以下行: c #define SDMMC_FREQ_DEFAULT 20000

步骤 3: 修改 SDMMC_FREQ_DEFAULT 的值 将上述行修改为:

c #define SDMMC_FREQ_DEFAULT 5000

注意事项

  • 备份原始文件:在修改前,确保备份 sd_protocol_types.h 文件,以防需要恢复原始配置。
  • 重新编译项目:修改后,重新编译你的项目以应用更改。
  • 检查硬件连接:确保 SD 卡和 ESP32 之间的硬件连接正确,包括电源、地线和数据线。
posted @ 2025-02-25 10:09  我辈年轻  阅读(256)  评论(0)    收藏  举报