打印

Fatfs移植的问题

[复制链接]
871|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
anger0925|  楼主 | 2020-6-11 11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在GD32F4上实现SD卡的FATFS移植。单独对sd读写正常。移植fatfs后,res=f_mkdir(pcVariable);   执行这句时就出现写CMD16时,返回SD_CMD_RESP_TIMEOUT超时。可能是什么原因呢?读写函数为:
DRESULT SD_read(BYTE lun, BYTE *buff, DWORD sector, UINT count)
{
  DRESULT res = RES_OK;
   
  if (count > 1)
  {
     /* Read multiple block */
    if(sd_multiblocks_read((uint32_t *)buff,
                          (uint32_t) (sector * BLOCK_SIZE),
                          BLOCK_SIZE,
                          count) != SD_OK)
      return RES_ERROR;
    /* Check if the Transfer is finished */
   
  }
  else
  {
    /* Read block */
    if(sd_block_read((uint32_t *)buff,
                    (uint32_t) (sector * BLOCK_SIZE),
                    BLOCK_SIZE) != SD_OK)
      return RES_ERROR;
    /* Check if the Transfer is finished */
     while(sd_transfer_state_get() != SD_NO_TRANSFER);       
  }
  
  return res;
}

DRESULT SD_write(BYTE lun, const BYTE *buff, DWORD sector, UINT count)
{
  DRESULT res = RES_OK;
  
  if (count > 1)
  {
     /* Write multiple block */
    if(sd_multiblocks_write((uint32_t *)buff,
                           (uint32_t) (sector * BLOCK_SIZE),
                           BLOCK_SIZE,
                           count) != SD_OK)
      return RES_ERROR;
    /* Check if the Transfer is finished */
  
  }
  else
  {
    /* Write block */
    if(sd_block_write((uint32_t *)buff,
                     (uint32_t) (sector * BLOCK_SIZE),
                     BLOCK_SIZE) != SD_OK)
      return RES_ERROR;
    /* Check if the Transfer is finished */
   while(sd_transfer_state_get() != SD_NO_TRANSFER);       
   
  }
  
  return res;
}

谢谢大家

使用特权

评论回复
沙发
coshi| | 2020-7-6 15:38 | 只看该作者
没看太明白呀

使用特权

评论回复
板凳
aoyi| | 2020-7-6 15:39 | 只看该作者
不懂 帮楼主顶一下

使用特权

评论回复
地板
drer| | 2020-7-6 15:41 | 只看该作者
楼主问题解决了吗

使用特权

评论回复
5
gwsan| | 2020-7-6 15:42 | 只看该作者
我的移植也不成功

使用特权

评论回复
6
qhjjjs| | 2020-9-12 22:31 | 只看该作者
我也遇到这个问题,请教一下现在这个问题解决了吗?

使用特权

评论回复
7
zhengshuai888| | 2020-9-16 07:41 | 只看该作者
应该fatfs接口问题

使用特权

评论回复
8
明天真的好| | 2020-9-17 19:19 | 只看该作者
单独对sd读写正常。移植fatfs后,res=f_mkdir(pcVariable);   执行这句时就出现写CMD16时,返回SD_CMD_RESP_TIMEOUT超时。

使用特权

评论回复
9
里面有晴雨| | 2020-9-18 09:07 | 只看该作者
fat移植都是通用的吧,没有什么难的地方。我想在哪里跑都是差不多的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

54

帖子

2

粉丝