一、SDIO 是什么SDIO SD Secure Digital Input Output专门用来高速读写 SD 卡 / TF 卡 /eMMC的硬件接口比 SPI 驱动 SD 卡快 520 倍支持 1 线 / 4 线模式常用4 线高速二、有哪些线引脚1. 标准 4 线 SDIO高速一共6 根线CLK时钟CMD命令线双向D0~D34 根数据线2. 常用 STM32 引脚以 SDIO 为例PC12 →SDIO_CKPD2 →SDIO_CMDPC8 →SDIO_D0PC9 →SDIO_D1PC10 →SDIO_D2PC11 →SDIO_D33. 必须外部上拉CMD、D0~D3 建议上拉 10kΩ 到 3.3V很多模块自带上拉直接用即可三、支持的卡类型SD 卡Micro SDTF 卡SDHC高容量 2GeMMC部分 STM32 支持SDIO 外设WiFi 模块、蓝牙模块等四、速度对比关键SPI 模式最大几 MB/sSDIO 1 线≈ 10~15MB/sSDIO 4 线≈ 20~60MB/s常用适合日志大量存储音频 / 视频录制文件系统 FatFS五、STM32 标准库代码可直接用1. 引脚初始化void SDIO_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE); // PC8~PC11: D0~D3 GPIO_InitStructure.GPIO_Pin GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOC, GPIO_InitStructure); // PC12: CLK GPIO_InitStructure.GPIO_Pin GPIO_Pin_12; GPIO_Init(GPIOC, GPIO_InitStructure); // PD2: CMD GPIO_InitStructure.GPIO_Pin GPIO_Pin_2; GPIO_Init(GPIOD, GPIO_InitStructure); }2. SDIO 初始化void SDIO_SD_Init(void) { SDIO_InitTypeDef SDIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_SDIO, ENABLE); SDIO_InitStructure.SDIO_ClockDiv 24; // 初期低速识别 SDIO_InitStructure.SDIO_ClockEdge SDIO_ClockEdge_Rising; SDIO_InitStructure.SDIO_ClockBypass SDIO_ClockBypass_Disable; SDIO_InitStructure.SDIO_ClockPowerSave SDIO_ClockPowerSave_Disable; SDIO_InitStructure.SDIO_BusWide SDIO_BusWide_4b; SDIO_InitStructure.SDIO_HardwareFlowControl SDIO_HardwareFlowControl_Disable; SDIO_Init(SDIO_InitStructure); SDIO_Cmd(ENABLE); }3. 实际驱动常用官方库函数实际项目不会自己写底层直接用 ST 官方驱动库SD_Error Status; // 初始化 SD 卡 Status SD_Init(); // 读块 Status SD_ReadBlock(buffer, sector_addr, 512); // 写块 Status SD_WriteBlock(buffer, sector_addr, 512);4. 配合 FatFS 文件系统最常用FIL file; FRESULT res; UINT bw; // 挂载 f_mount(fs, 0:, 1); // 打开/创建文件 res f_open(file, 0:log.txt, FA_OPEN_ALWAYS | FA_WRITE); // 写入 f_write(file, Hello SDIO\n, 10, bw); // 关闭 f_close(file);六、SDIO 工作模式SD 1 位模式只用到 D0速度一般SD 4 位模式D0~D3 全开速度最快SPI 兼容模式速度慢不用 SDIO 外设七、优点与缺点优点速度极快支持大容量 SDHC适合高速录制、数据存储可接 SDIO WiFi / 蓝牙模块缺点占用引脚多6 根必须 3.3V不能直接 5V调试比 SPI 复杂一点八、和 SPI 驱动 SD 卡的区别项目SPISDIO速度慢快很多引脚4 个6 个程序难度简单较复杂用库即可适用场景小数据、配置存储日志、音频、大文件