野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9615|回复: 2

用stm32控制mpu6050,想把mpu6050的数据存到卡里,物理驱动层不工作,跪求大神解释!

[复制链接]
发表于 2015-3-4 21:48:51 | 显示全部楼层 |阅读模式
什么样的情况下插入SD卡时程序运行会出现这样的结果?是不是卡坏了?用stm32控制mpu6050,想把mpu6050的数据存到卡里,结果程序运行到SD卡的部分得到的返回值显示0x03,也就是说物理驱动层不工作,大神帮我解释下啦

以下是我的程序:

if(PBin(11)==0)//SD读写开关,检测到卡已经插入       
{       
        PBout(2)=0;
        printf("\n打开Data.txt.\n");
  rc = f_open(&fil, "Data.TXT", FA_WRITE);
  if (rc) die(rc);               
        f_lseek(&fil,fil.fsize);
        f_printf(&fil,"%d ACC:X=%s,Y=%s,Z=%s;GRY:X=%s,Y=%s,Z=%s; Pitch:%s Roll:%s\r\n",SD_count,ACCX,ACCY,ACCZ,GRYX,GRYY,GRYZ,pitch_s,roll_s);//记事本换行符:\r\n       
        rc = f_close(&fil);
        if (rc) die(rc);
        printf("写入完成.\n");
        SD_count++;
        PBout(2)=1;
}
else PBout(2)=1;        }void die (FRESULT rc) //错误状态函数{         printf("发生错误:错误号 rc=%u.\n", rc);        while(1);}

回复

使用道具 举报

发表于 2015-3-5 09:15:09 | 显示全部楼层
参考一下野火的sd卡文件系统例程,可能是你没移植好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-6 21:38:33 | 显示全部楼层
flyleaf 发表于 2015-3-5 09:15
参考一下野火的sd卡文件系统例程,可能是你没移植好

我创建文件系统的时候都没问题
void  FAT_init()
{
printf("文件系统启动\n");
f_mount(0, &fatfs);
printf("\n创建文件 Data.txt.\n");
rc = f_open(&fil, "Data.TXT", FA_WRITE | FA_CREATE_ALWAYS); //覆盖写

if (rc) printf("\nSD操作失败\n");       
rc = f_close(&fil);
if (rc) printf("\nSD操作失败\n");
printf("\n创建文件成功\n");
}
这部分程序都是成功的。但是我后来要开始存数据的时候就出问题了
if(PBin(11)==0)//SD读写开关,检测到卡已经插入        
{       
        PBout(2)=0;
        printf("\n打开Data.txt.\n");
  rc = f_open(&fil, "Data.TXT", FA_WRITE);
  if (rc) die(rc);               
……
}
得到的rc返回值是0x03
如果是没移植好的话,应该在前面创建文件系统的时候就出问题了啊,并且也不是卡的问题,我换了张卡试了还是得到0x03的错误返回值。真心求教!
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-19 12:04 , Processed in 0.030512 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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