请选择 进入手机版 | 继续访问电脑版

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

STM32H743+CubeMX+FreeRTOS+FatFs+SDMMC在定时器中读写tf卡文件失...

[复制链接]
QIANYING79 提问时间:2021-9-25 20:55 / 未解决
在freertos的任务中读写tf卡是没问题的,在定时器中读写就不行了,报错代码FR_DISK_ERR。调试代码发现在加载分区时,fmt的值为4从而报错。
  1. /* Find an FAT partition on the drive. Supports only generic partitioning rules, FDISK and SFD. */
  2.         bsect = 0;
  3.         fmt = check_fs(fs, bsect);                        /* Load sector 0 and check if it is an FAT-VBR as SFD */
  4.         if (fmt == 2 || (fmt < 2 && LD2PT(vol) != 0)) {        /* Not an FAT-VBR or forced partition number */
  5.                 for (i = 0; i < 4; i++) {                /* Get partition offset */
  6.                         pt = fs->win + (MBR_Table + i * SZ_PTE);
  7.                         br[i] = pt[PTE_System] ? ld_dword(pt + PTE_StLba) : 0;
  8.                 }
  9.                 i = LD2PT(vol);                                        /* Partition number: 0:auto, 1-4:forced */
  10.                 if (i) i--;
  11.                 do {                                                        /* Find an FAT volume */
  12.                         bsect = br[i];
  13.                         fmt = bsect ? check_fs(fs, bsect) : 3;        /* Check the partition */
  14.                 } while (LD2PT(vol) == 0 && fmt >= 2 && ++i < 4);
  15.         }
  16.         if (fmt == 4) return FR_DISK_ERR;                /* An error occured in the disk I/O layer */
  17.         if (fmt >= 2) return FR_NO_FILESYSTEM;        /* No FAT volume is found */
复制代码
fatfs的可重入功能配置如下,超时时间配置为0是因为fatfs的同步机制使用的获取信号量函数为osSemaphoreAcquire,该函数超时时间值为0可在中断函数中调用。
  1. #define _FS_REENTRANT    1  /* 0:Disable or 1:Enable */

  2. #define _USE_MUTEX       0 /* 0:Disable or 1:Enable */
  3. #define _FS_TIMEOUT      0//1000 /* Timeout period in unit of time ticks */
  4. #define _SYNC_t          osSemaphoreId_t
复制代码
希望各位大佬不吝赐教,感谢!
收藏 评论0 发布时间:2021-9-25 20:55

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版