搜索
bottom↓
回复: 11

请教下,cubeMx生成的stm32F407+U盘+FATFS系统会死循环超时

[复制链接]

出0入0汤圆

发表于 2019-5-24 22:51:58 | 显示全部楼层 |阅读模式
本帖最后由 Feeling_MCU 于 2019-5-24 22:55 编辑

执行f_read 正常。
执行f_write 失败
rtn = f_write(&fil, "Hello, World!\r\n", 15, &bw);

运行到  while (USBH_MSC_RdWrProcess(phost, lun) == USBH_BUSY)  会一直死循环超时,导致写失败。
请教下是什么情况呢?
USBH_StatusTypeDef USBH_MSC_Read(USBH_HandleTypeDef *phost,
                                     uint8_t lun,
                                     uint32_t address,
                                     uint8_t *pbuf,
                                     uint32_t length)
{
  uint32_t timeout;
  MSC_HandleTypeDef *MSC_Handle =  (MSC_HandleTypeDef *) phost->pActiveClass->pData;

  if ((phost->device.is_connected == 0U) ||
      (phost->gState != HOST_CLASS) ||
      (MSC_Handle->unit[lun].state != MSC_IDLE))
  {
    return  USBH_FAIL;
  }

  MSC_Handle->state = MSC_READ;
  MSC_Handle->unit[lun].state = MSC_READ;
  MSC_Handle->rw_lun = lun;

  USBH_MSC_SCSI_Read(phost, lun, address, pbuf, length);

  timeout = phost->Timer;

  while (USBH_MSC_RdWrProcess(phost, lun) == USBH_BUSY)

  {
    if(((phost->Timer - timeout) > (10000U * length)) || (phost->device.is_connected == 0U))
    {
      MSC_Handle->state = MSC_IDLE;
      return USBH_FAIL;
    }
  }
  MSC_Handle->state = MSC_IDLE;

  return USBH_OK;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入53汤圆

发表于 2019-7-2 15:24:52 | 显示全部楼层
lz找到问题了吗?我也遇到同样的问题了

出0入0汤圆

发表于 2019-7-2 18:06:35 | 显示全部楼层
CubeMx方便是方便,就是出了问题无从下手。。

出0入0汤圆

 楼主| 发表于 2019-7-3 19:27:58 | 显示全部楼层
zhcj66 发表于 2019-7-2 15:24
lz找到问题了吗?我也遇到同样的问题了


问题已解决,但我忘了咋解决的了

大概这样:
1、读U盘,D+ D-最好不要串电阻, 20欧是不行的
2、我格式化了U盘

出0入53汤圆

发表于 2019-7-3 21:53:52 | 显示全部楼层
Feeling_MCU 发表于 2019-7-3 19:27
问题已解决,但我忘了咋解决的了

大概这样:

我的文件找到了,是u盘兼容性问题,现在测试了 金士顿u盘,读卡器+闪迪tf,闪迪u盘.只有测试闪迪u盘的时候会出现写入失败

出0入0汤圆

 楼主| 发表于 2019-7-3 23:37:59 | 显示全部楼层
zhcj66 发表于 2019-7-3 21:53
我的文件找到了,是u盘兼容性问题,现在测试了 金士顿u盘,读卡器+闪迪tf,闪迪u盘.只有测试闪迪u盘的时候会 ...

是的,我也怀疑有这种情况

出0入53汤圆

发表于 2019-7-4 08:58:03 | 显示全部楼层
Feeling_MCU 发表于 2019-7-3 23:37
是的,我也怀疑有这种情况

今天早上把u的库换成最新的V2.2 问题完美解决了

出0入0汤圆

 楼主| 发表于 2019-7-4 09:08:42 | 显示全部楼层
zhcj66 发表于 2019-7-4 08:58
今天早上把u的库换成最新的V2.2 问题完美解决了

cubeMx库? 我也去试试

出0入53汤圆

发表于 2019-7-4 09:14:02 | 显示全部楼层
Feeling_MCU 发表于 2019-7-4 09:08
cubeMx库? 我也去试试

https://www.amobbs.com/thread-5714675-1-1.html

看我帖子

出0入53汤圆

发表于 2019-7-4 10:50:15 | 显示全部楼层
Feeling_MCU 发表于 2019-7-4 09:08
cubeMx库? 我也去试试

获取磁盘的剩余容量 怎么做的?

出0入0汤圆

 楼主| 发表于 2019-7-4 11:12:15 | 显示全部楼层
zhcj66 发表于 2019-7-4 10:50
获取磁盘的剩余容量 怎么做的?

你把FATFS调试信息输出打开,可以通过串口看得到U盘信息

出0入53汤圆

发表于 2019-7-4 13:06:21 | 显示全部楼层
Feeling_MCU 发表于 2019-7-4 11:12
你把FATFS调试信息输出打开,可以通过串口看得到U盘信息

没做过 ,调取哪个信息?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-16 21:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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