OpenEdv-开源电子网

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

stm32 SD卡+fatfs文件系统,存储出错

[复制链接]

28

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2018-4-10
在线时间
28 小时
发表于 2020-8-3 09:02:33 | 显示全部楼层 |阅读模式
用SD卡+fatfs文件系统保存图片,正常运行存储800张后出现找不到路径的错误,请各位指点


u8 SD_write_picture(u32 TXT_num,u8 *buf,uint16_t buf_num)                //D′SD¿¨ÎļtÏμí3
{
        u8  status;
        char str[30];
        sprintf(str,"0:/sensor/picture/pic%d.txt",TXT_num);
  status = f_open(&fnew,str,FA_OPEN_ALWAYS | FA_WRITE );
        if( status == 0 )
        {
                f_lseek(&fnew,fnew.fsize);
                status=f_write(&fnew,buf,buf_num,&fnum);
    if(status != FR_OK)
    {
      printf("doc writing faided! %d\r\n",status);
    }
//    else
//                {
//      printf("doc writing succeed! %d\r\n",status);
//    }                       
    f_close(&fnew);                  /* 2»Ôù¶áD′£¬1رÕÎļt */
                return status;
        }
        else
        {       
                printf("open or creat doc faided!\r\n");
                f_close(&fnew);                /* 2»Ôù¶áD′£¬1رÕÎļt */
                return status;
        }

}



u8 SD_read_picture(u32 TXT_num,u8 *buf,uint16_t buf_num,uint32_t buf_address)                //D′SD¿¨ÎļtÏμí3
{
        u8 status;
        char str[30];
        sprintf(str,"0:/sensor/picture/pic%d.txt",TXT_num);
  status = f_open(&fnew,str,FA_OPEN_EXISTING | FA_READ );
        if( status == 0 )
        {
                f_lseek(&fnew,buf_address);
                status=f_read(&fnew,buf,buf_num,&fnum);
    if(status != FR_OK)
    {
      printf("doc raeding faided! %d\r\n",status);
    }
//    else
//                {
//      printf("doc writing succeed! %d\r\n",status);
//    }                       
    f_close(&fnew);                  /* 2»Ôù¶áD′£¬1رÕÎļt */
                return status;
        }
        else
        {       
                printf("open or creat doc faided!\r\n");
                f_close(&fnew);                /* 2»Ôù¶áD′£¬1رÕÎļt */
                return status;
        }

}

以上为读写的函数;主函数逻辑是先将图片信息写入文件,分多次写入;然后在读文件传输,读文件前打开过一次文件得到总文件字节数
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2018-4-10
在线时间
28 小时
 楼主| 发表于 2020-8-3 09:30:58 | 显示全部楼层
回复 支持 反对

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2020-8-3 12:13:34 | 显示全部楼层
帮顶~~
回复 支持 反对

使用道具 举报

22

主题

2254

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4486
金钱
4486
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-8-3 13:37:15 | 显示全部楼层
溢出了吧
回复 支持 反对

使用道具 举报

28

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2018-4-10
在线时间
28 小时
 楼主| 发表于 2020-8-3 13:52:52 | 显示全部楼层

您指的是?
回复 支持 反对

使用道具 举报

28

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2018-4-10
在线时间
28 小时
 楼主| 发表于 2020-8-3 13:54:46 | 显示全部楼层
补充一下,重启一下后又恢复正常,没有规律出现,到现在还没复现,已经又测试一上午了
回复 支持 反对

使用道具 举报

22

主题

2254

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4486
金钱
4486
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-8-3 15:23:01 | 显示全部楼层
jasonyu 发表于 2020-8-3 13:54
补充一下,重启一下后又恢复正常,没有规律出现,到现在还没复现,已经又测试一上午了

内存溢出了,慢慢找找吧,溢出后就会出现问题,但是哪里溢出很难找
回复 支持 反对

使用道具 举报

28

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2018-4-10
在线时间
28 小时
 楼主| 发表于 2020-8-4 08:40:54 | 显示全部楼层
三叶草 发表于 2020-8-3 15:23
内存溢出了,慢慢找找吧,溢出后就会出现问题,但是哪里溢出很难找

目前初步锁定是因为文件名稍微长一些了,但是问题不是在固定时间复现
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-30 06:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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