分享一个STM32CubeMX实现SDIO+DMA+FatFs的步骤

2019-12-11 18:30发布

我的软硬件环境是:STM32CubeMX V4.25   Keil 5.18   STM32F429BITx

首先在端口配置中选择SDIO和FatFS:
FATFS.png (58.35 KB, 下载次数: 0) 下载附件 2018-8-20 09:14 上传

配置完成后生成代码,这时还不能直接使用,需要重写一下SD卡收发的回调函数,我是在sd_driver.c文件末尾的用户保护代码区增加了以下内容:
(以上STM32CubeMX部分配置网上教程很多,但很少有人提及回调函数这个问题,不知道是不是以前的版本不需要这一步?)
/* USER CODE BEGIN lastSection */
/* can be used to modify / undefine previous code or add new code */

void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd)
{
    BSP_SD_WriteCpltCallback();
}

void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd)
{
     BSP_SD_ReadCpltCallback();
}
       
/* USER CODE END lastSection */

完成后即可正常使用FatFS文件系统了:
res=f_mount(&SDFatFS, (TCHAR const*)SDPath, 1);
result = f_open(&file,sFileName,FA_OPEN_EXISTING|FA_WRITE|FA_OPEN_ALWAYS);
略.....
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。