OpenEdv-开源电子网

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

FATFS f_write调用时,写入不成功

[复制链接]

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-26
在线时间
0 小时
发表于 2015-3-13 09:43:41 | 显示全部楼层 |阅读模式
5金钱
FRESULT MMC_SD_File_Write( u8 *w_data, u8 length )
{
    FRESULT   myres;
    FIL  myfsrc;
    UINT  mybr;

    //打开文件
    myres = f_open(&myfsrc, FILE_PATH, FA_CREATE_NEW | FA_WRITE);
    //打开成功
    if( myres == FR_OK)
    {
        myres = f_write( &myfsrc, w_data, length, &mybr );
        f_close(&myfsrc);
    }
    //如果文件已经存在,以追加的方式写入
    else if( myres == FR_EXIST )
    {
        myres = f_open(&myfsrc, FILE_PATH, FA_OPEN_ALWAYS | FA_WRITE);
        myres = f_lseek(&myfsrc, myfsrc.fsize);
        myres = f_write( &myfsrc, w_data, length, &mybr );
        f_close(&myfsrc);
    }
    //打开失败
    else
    {
        f_close(&myfsrc);
    }

    return myres;
}

注:f_mount这个函数在调用上面的函数之前就已经调用了。


问题点是:
FILE_PATH文件在SD卡里不存时,会创建新的文件,但不会将w_data的内容写入在该文件里,并返回FR_DISK_ERR的错误代码。
请问这可能问题出现在哪里?

最佳答案

查看完整内容[请看2#楼]

回复【9楼】正点原子: --------------------------------- 谢谢站长,现在搞定了,1G,2G,4G,8G的,都可以了。 我修改的地方有: 1、降低SD卡驱动时钟的频率为128 2、     //先产生>74个脉冲,让SD卡自己初始化完成     for(i=0;i<10;i++)     {         SPI1_ReadWriteByte(0xFF);     }  ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-26
在线时间
0 小时
 楼主| 发表于 2015-3-13 09:43:42 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
谢谢站长,现在搞定了,1G,2G,4G,8G的,都可以了。
我修改的地方有:
1、降低SD卡驱动时钟的频率为128
2、
    //先产生>74个脉冲,让SD卡自己初始化完成
    for(i=0;i<10;i++)
    {
        SPI1_ReadWriteByte(0xFF);
    } 

   这里改成:
   for(i=0;i<25;i++)    

就OK了。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-3-13 23:12:45 | 显示全部楼层
你的底层代码正常了么?
是不是移植的我们的例程?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-26
在线时间
0 小时
 楼主| 发表于 2015-3-14 15:46:12 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
不是移值你们的,你可以提供你们的移植代码吗? 先谢谢了。
回复

使用道具 举报

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-26
在线时间
0 小时
 楼主| 发表于 2015-3-14 20:54:36 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
底层代码我觉得没有问题,读是可以的。写的话,就是99%不成功,也有成功的时候。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-3-14 22:48:20 | 显示全部楼层
回复【4楼】daliangcao:
---------------------------------
看看是不是写时钟太快了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-26
在线时间
0 小时
 楼主| 发表于 2015-3-15 10:08:07 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
不好意思,如果是太快了的话,修改这个设置在哪里啊?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-3-16 00:14:49 | 显示全部楼层
回复【6楼】daliangcao:
---------------------------------
降低SD卡驱动时钟的频率。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-26
在线时间
0 小时
 楼主| 发表于 2015-3-16 09:30:38 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
降了后,也试过。然后返回值变成9了。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-3-16 23:13:03 | 显示全部楼层
回复【8楼】daliangcao:
---------------------------------
额额,那就换卡试试吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-26
在线时间
0 小时
 楼主| 发表于 2015-3-17 17:27:57 | 显示全部楼层
上面做试验的SD卡牌子里不含三星,目前三星的SD卡还没有搞定。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-3-18 00:06:36 | 显示全部楼层
回复【10楼】daliangcao:
---------------------------------
谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2021-7-6
在线时间
1 小时
发表于 2021-7-6 16:29:40 | 显示全部楼层
daliangcao 发表于 2015-3-13 09:43
回复【9楼】正点原子:
---------------------------------
谢谢站长,现在搞定了,1G,2G,4G,8G的,都可 ...

楼主,您修改的地方您可以再详细些吗?我也遇到f_write执行成功,但是写入失败这个问题了
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2021-7-6
在线时间
1 小时
发表于 2021-7-8 10:17:36 | 显示全部楼层
楼主,楼主。您好,《FATFS f_write调用时,写入不成功》,我也遇到这个问题了,想请教您是如何解决的,我用的移植版本是普中的,我还不会降低SD卡驱动时钟频率。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 15:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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