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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版