使用FATFS重新挂载SD卡后无法打开(FR_NOT_ENABLED)。MCU为STM32F429,开发环境是STM32cubeIDE。板子通过SDIO接口连接了SD卡,并且应用程序中使用了RTOS。上电后,挂载和打开操作都正常,但当拔出SD卡并重新插入后,虽然挂载成功,但"F_OPEN"函数返回"FR_NOT_ENABLED"错误。在拔出SD卡后会执行卸载操作。所有这些代码都在同一个线程中。
我的挂载代码如下:
FATFS_LinkDriver(&SD_Driver,SDPath);
HAL_Delay(200);
res = f_mount(&SDFatFS, (TCHAR const*)SDPath, 1);
if (res == FR_OK)
{
SD_CARD_Mount_Status = 1;
RS485_Write_Read(RS485_Write);
printf("Mount OK\n\r");
RS485_Write_Read(RS485_Read);
}
else
{
SD_CARD_Mount_Status = 0;
RS485_Write_Read(RS485_Write);
printf("Mount Failed = %u\n\r",res);
RS485_Write_Read(RS485_Read);
}
My Unmounting code is:
res = f_mount(NULL, (TCHAR const*)SDPath, 1);
HAL_Delay(200);
FATFS_UnLinkDriver(SDPath);
SD_CARD_Mount_Status = 0;
RS485_Write_Read(RS485_Write);
printf("Unmount OK\n\r");
RS485_Write_Read(RS485_Read);
|
|