你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f746-disco SD+FATFS出错

[复制链接]
沐紫 提问时间:2016-4-5 16:01 /
悬赏10ST金币已解决
使用官方提供STM32Cube_FW_F7_V1.3.0下的FatFs_uSD_RTOS例程,使用SDIO+Fatfs+ FreeRTOS,一次运行正确,但想要每隔1秒往1个文件中追加写入32字节,就会出错,报告FS_DISK_ERR,如果不运行FreeRTOSD则不会出错;此外,把sd_diskio.c中的SD_read和SD_write分别用BSP_SD_ReadBlocks_DMA和BSP_SD_WriteBlocks_DMA实现,也无法正确运行。该如何改正这些错误呢?


本帖为网友在FAQ栏目的询问贴,欢迎前去回答:https://www.stmcu.org.cn/faq/index/detail/id-70678

最佳答案

查看完整内容

我用过F4的SDIO,也是用CubeMX配置的。用polling模式的时候,遇到过SD卡写的时候卡死的情况。后来用DMA模式,就好了。 要使用SDIO的DMA功能,不能简单的直接改SD_read和SD_write里调用的那两个函数,当然这是必要的步骤。 还需要在CubeMX中配置SDIO的DMA功能,如下图:(RX和TX的配置相同)
收藏 1 评论6 发布时间:2016-4-5 16:01

举报

6个回答
adlu 回答时间:2016-4-5 16:01:02
我用过F4的SDIO,也是用CubeMX配置的。用polling模式的时候,遇到过SD卡写的时候卡死的情况。后来用DMA模式,就好了。

要使用SDIO的DMA功能,不能简单的直接改SD_read和SD_write里调用的那两个函数,当然这是必要的步骤。
还需要在CubeMX中配置SDIO的DMA功能,如下图:(RX和TX的配置相同)

QQ图片20160405181712.png
adlu 回答时间:2016-4-5 18:25:09
还有要修改的地方,请参考此贴https://www.stmcu.org.cn/module/forum/thread-605532-1-1.html
F7的应该是类似的,但是FreeRTOS下我没试过。
yangskyhigh 回答时间:2016-4-28 18:00:33
LZ来报告
前面的问题是在  STM32F746DISCO开发板和官方1.3.0例程基础上出现的,使用了FreeRTOS系统
参考了上面回答的方法后,还是不稳定,后来把SDIO相关的3个中断优先级别调高,SDIO中断设为3,DMA发送和接收的调为4,比FreeRTOS的系统用户级别高,这才解决问题。
谢谢上面热心网友解答!
xmshao 回答时间:2016-4-28 22:37:44
愿意分享,赞一个!
沐紫 回答时间:2016-4-29 10:06:21
xmshao 发表于 2016-4-28 22:37
愿意分享,赞一个!

这么晚还在,辛苦!谢谢~
lzp2009 回答时间:2016-8-25 13:38:43
请问F103如何做呢?
SDIO_DMA.jpg

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版