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
我用过F4的SDIO,也是用CubeMX配置的。用polling模式的时候,遇到过SD卡写的时候卡死的情况。后来用DMA模式,就好了。
要使用SDIO的DMA功能,不能简单的直接改SD_read和SD_write里调用的那两个函数,当然这是必要的步骤。
还需要在CubeMX中配置SDIO的DMA功能,如下图:(RX和TX的配置相同)
还有要修改的地方,请参考此贴https://www.stmcu.org.cn/module/forum/thread-605532-1-1.html
F7的应该是类似的,但是FreeRTOS下我没试过。
LZ来报告
前面的问题是在STM32F746DISCO开发板和官方1.3.0例程基础上出现的,使用了FreeRTOS系统
参考了上面回答的方法后,还是不稳定,后来把SDIO相关的3个中断优先级别调高,SDIO中断设为3,DMA发送和接收的调为4,比FreeRTOS的系统用户级别高,这才解决问题。
谢谢上面热心网友解答!
愿意分享,赞一个! xmshao 发表于 2016-4-28 22:37
愿意分享,赞一个!
这么晚还在,辛苦!谢谢~ 请问F103如何做呢?
页:
[1]