[应用相关] 分享一个STM32CubeMX实现SDIO+DMA+FatFs的步骤

[复制链接]
4170|8
 楼主| wangjiahao88 发表于 2019-5-1 16:26 | 显示全部楼层 |阅读模式
分享一个STM32CubeMX实现SDIO+DMA+FatFs的步骤
我的软硬件环境是:STM32CubeMX V4.25   Keil 5.18   STM32F429BITx

 楼主| wangjiahao88 发表于 2019-5-1 16:26 | 显示全部楼层
首先在端口配置中选择SDIO和FatFS:
850145cc9583a578e6.png
 楼主| wangjiahao88 发表于 2019-5-1 16:26 | 显示全部楼层
 楼主| wangjiahao88 发表于 2019-5-1 16:26 | 显示全部楼层
 楼主| wangjiahao88 发表于 2019-5-1 16:27 | 显示全部楼层
 楼主| wangjiahao88 发表于 2019-5-1 16:27 | 显示全部楼层
 楼主| wangjiahao88 发表于 2019-5-1 16:27 | 显示全部楼层
 楼主| wangjiahao88 发表于 2019-5-1 16:27 | 显示全部楼层
配置完成后生成代码,这时还不能直接使用,需要重写一下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);
M小涛 发表于 2020-4-10 13:14 | 显示全部楼层
楼主,感觉你这个应该也不是采用DMA方式实现的,你可以看一下bsp的相关函数。你的应该也是查询的方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

500

主题

7585

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部