打印
[应用相关]

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

[复制链接]
3830|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
分享一个STM32CubeMX实现SDIO+DMA+FatFs的步骤
我的软硬件环境是:STM32CubeMX V4.25   Keil 5.18   STM32F429BITx

使用特权

评论回复
沙发
wangjiahao88|  楼主 | 2019-5-1 16:26 | 只看该作者
首先在端口配置中选择SDIO和FatFS:

使用特权

评论回复
板凳
wangjiahao88|  楼主 | 2019-5-1 16:26 | 只看该作者

使用特权

评论回复
地板
wangjiahao88|  楼主 | 2019-5-1 16:26 | 只看该作者

使用特权

评论回复
5
wangjiahao88|  楼主 | 2019-5-1 16:27 | 只看该作者

使用特权

评论回复
6
wangjiahao88|  楼主 | 2019-5-1 16:27 | 只看该作者

使用特权

评论回复
7
wangjiahao88|  楼主 | 2019-5-1 16:27 | 只看该作者

使用特权

评论回复
8
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);

使用特权

评论回复
9
M小涛| | 2020-4-10 13:14 | 只看该作者
楼主,感觉你这个应该也不是采用DMA方式实现的,你可以看一下bsp的相关函数。你的应该也是查询的方法。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

473

主题

7517

帖子

30

粉丝