OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6336|回复: 0

STM32F407VET6 用最新CubeMX配置FATFS使用DMA传输模式,在打开两个文件时,第二次读取就会卡死

[复制链接]

0

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2022-6-30
在线时间
3 小时
发表于 2022-11-26 15:03:47 | 显示全部楼层 |阅读模式
2金钱
本帖最后由 TanSirOne 于 2022-11-26 16:41 编辑

STM32F407VET6 用最新CubeMX配置FATFS使用DMA传输模式,在打开两个文件的情况下时,第二次读取就会卡死
(1)打开的第二个文件未进行任何操作,仅仅是打开,第一次f_read没有问题,但是第二次就会卡死在里面
(2)不使用DMA模式可以完成全部的读取操作读取操作(写入没有试)
(3)我一次读取3000字节数据,同时数据也开启了4字节对齐(不管字节多少都会如下位置卡死)(4)具体卡死位置
if(BSP_SD_ReadBlocks_DMA((uint32_t*)buff,
                             (uint32_t) (sector),
                             count) == MSD_OK)
    {
      ReadStatus = 0;
      /* Wait that the reading process is completed or a timeout occurs */
      timeout = HAL_GetTick();
      while((ReadStatus == 0) && ((HAL_GetTick() - timeout) < SD_TIMEOUT))
      {
      }

(5)没有任何的其他操作,仅仅是配置完读取文件,一次读取3000字节,不使用DMA没有任何问题。
(6)我不会从文件里直接修改 轮询模式和DMA模式 我每次都是重新建cubeMX文件
       如果直接在sd_diskio.c文件里改相关函数名字的话,FATFS会出现错误 :fa_disk_error  和 没有文件系统的 错误;
  (BSP_SD_ReadBlocks_DMA—>BSP_SD_ReadBlocks/BSP_SD_ReadBlocks->BSP_SD_ReadBlocks_DMA)
        就算直接把 轮询模式的sd_diskio.c搬运过来也会出现错误。
       不清楚还要修改那些地方才能更改FATFS的读取SD模式,希望高手指点!!!





file.zip

18.28 MB, 下载次数: 2

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 23:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表