我曾经从CubeMX获取一些代码,使STM32成为SD卡读卡器。 但是write.windows有问题告诉我磁盘驱动程序有问题。 顺便说一句,它在fatfs读取/取消链接工作,我也没有尝试写。 这是一些重要的代码:
MSD_Status BSP_SD_Init(void)
{
cardHandle.Instance = SDIO;
cardHandle.Init.ClockEdge = SDIO_CLOCK_EDGE_RISING;
cardHandle.Init.ClockBypass = SDIO_CLOCK_BYPASS_DISABLE;
cardHandle.Init.ClockPowerSave = SDIO_CLOCK_POWER_SAVE_DISABLE;
cardHandle.Init.BusWide = SDIO_BUS_WIDE_1B;
cardHandle.Init.HardwareFlowControl =
SDIO_HARDWARE_FLOW_CONTROL_DISABLE;
cardHandle.Init.ClockDiv = 2;
HAL_StatusTypeDef sd_err = HAL_SD_Init(&cardHandle);
if (sd_err != HAL_OK)
return MSD_ERR;
sd_err = HAL_SD_ConfigWideBusOperation(&cardHandle, SDIO_BUS_WIDE_4B);
if (sd_err != HAL_OK)
return MSD_ERR;
return MSD_OK;
}