华芯微特开发论坛

 找回密码
 立即注册
搜索
热搜: SWM341 资料
查看: 1049|回复: 2

SD卡 FATFS问题

[复制链接]

8

主题

27

帖子

120

积分

注册会员

Rank: 2

积分
120
发表于 2024-3-12 20:58:14 | 显示全部楼层 |阅读模式
SDCard  MassageStaorage 例程运行正常 (没用到FATFS, SD读写正常,硬件正确)
SFC FATFS运行正常 (FATFS正常)
SDcard FATFS 例程, f_mount 返回1  错误,( SDIO_Init(1 * 1000000UL)   返回0正常 )

这个可能原因? ST系列SD需要先 1-wire 然后4-wire, SWM也需要这样?
回复

使用道具 举报

8

主题

27

帖子

120

积分

注册会员

Rank: 2

积分
120
 楼主| 发表于 2024-3-14 13:30:42 | 显示全部楼层
修改例程的  disk_ioctl 函数通过f_mount

  1. DRESULT disk_ioctl (
  2.         BYTE pdrv,                /* Physical drive nmuber (0..) */
  3.         BYTE cmd,                /* Control code */
  4.         void *buff                /* Buffer to send/receive control data */
  5. )
  6. {
  7.         DRESULT res;
  8.         //int result;

  9.         switch (pdrv) {
  10.         case DEV_RAM :

  11.                 // Process of the command for the RAM drive
  12.        
  13.                 res = RES_PARERR;

  14.                 return res;

  15.         case DEV_MMC :

  16.                 // Process of the command for the MMC/SD card
  17.        
  18.                 switch (cmd)
  19.                 {
  20.                 case CTRL_SYNC:
  21.                         // SD_DiskFlush();
  22.                         return RES_OK;

  23.                 case GET_SECTOR_SIZE:
  24.                         *((WORD *)buff) = SD_cardInfo.CardBlockSize;
  25.                         return RES_OK;

  26.                 case GET_SECTOR_COUNT:
  27.                         *((DWORD *)buff) = SD_cardInfo.CardCapacity / SD_cardInfo.CardBlockSize;
  28.                         return RES_OK;

  29.                 case GET_BLOCK_SIZE:
  30.                         *((DWORD *)buff) = 1; // SD_cardInfo.CardBlockSize / SD_cardInfo.CardBlockSize;
  31.                         return RES_OK;

  32.                 default:
  33.                         return RES_PARERR;
  34.                 }

  35.         case DEV_USB :

  36.                 // Process of the command the USB drive
  37.        
  38.                 res = RES_PARERR;

  39.                 return res;
  40.         }

  41.         return RES_PARERR;
  42. }
复制代码
回复

使用道具 举报

8

主题

27

帖子

120

积分

注册会员

Rank: 2

积分
120
 楼主| 发表于 2024-3-14 13:31:58 | 显示全部楼层
f_write 写文件遇到问题, 按FlashDisk.c 读写方法改写SDIODisk.c

f_write 也通过测试
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|华芯微特开发论坛

GMT+8, 2025-1-10 06:35 , Processed in 0.031693 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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