沐紫 发表于 2016-4-5 16:01:01

stm32f746-disco SD+FATFS出错

使用官方提供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

adlu 发表于 2016-4-5 16:01:02

我用过F4的SDIO,也是用CubeMX配置的。用polling模式的时候,遇到过SD卡写的时候卡死的情况。后来用DMA模式,就好了。

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


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如何做呢?
页: [1]
查看完整版本: stm32f746-disco SD+FATFS出错