OpenEdv-开源电子网

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

请教为什么文件系统都出来不对啊

[复制链接]

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
发表于 2016-8-30 15:00:58 | 显示全部楼层 |阅读模式
1金钱
res = f_open(&fdst,"0:/PIC1.bin",FA_CREATE_NEW | FA_WRITE);
         if ( res == FR_OK )
         {
                 RUN=0;
                res = f_write(&fdst, textFileBuffer2, sizeof(textFileBuffer2), &bw);  
    delay_ms(200);                 
                    f_close(&fdst);      
          }
   else if ( res == FR_EXIST )
         {
                 u2_printf( "\r\n ÎļtòѾ-′æÔú \n" );
                 delay_ms(200);
           //u2_printf("\r\n %s ", textFileBuffer2);
         }       
我现在是用原子的例程,把读到的bin文件(其实是一些点阵数据)显示到点阵屏上
用的是原子的C2B转换助手将点阵数据转成了bin文件,于是在这里面都出来的并不是这些,好像很乱,请问是什么问题啊?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
 楼主| 发表于 2016-8-30 16:27:08 | 显示全部楼层
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-8-30 22:38:33 | 显示全部楼层
没看到你的f_read函数,只看到f_write函数,你写入文件干嘛,不是要读取数据么?
回复

使用道具 举报

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
 楼主| 发表于 2016-8-31 09:26:29 | 显示全部楼层
八度空间 发表于 2016-8-30 22:38
没看到你的f_read函数,只看到f_write函数,你写入文件干嘛,不是要读取数据么?

这个 res = f_read(&fdst, textFileBuffer2, sizeof(textFileBuffer2), &bw);
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2012-9-13
在线时间
8 小时
发表于 2016-8-31 11:12:56 | 显示全部楼层
首先你要仿真看你 res = f_write(&fdst, textFileBuffer2, sizeof(textFileBuffer2), &bw);   textFileBuffer2这个数组里的数据是不是你BIN文件数据。
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2012-9-13
在线时间
8 小时
发表于 2016-8-31 11:14:49 | 显示全部楼层
错了,是 res = f_read(&fdst, textFileBuffer2, sizeof(textFileBuffer2), &bw); 读textFileBuffer2这个数组里的数据是不是你BIN文件数据。
回复

使用道具 举报

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
 楼主| 发表于 2016-8-31 11:39:04 | 显示全部楼层
得得 发表于 2016-8-31 11:14
错了,是 res = f_read(&fdst, textFileBuffer2, sizeof(textFileBuffer2), &bw); 读textFileBuffer2这个数 ...

不是 并且感觉程序跑飞了 这个数组定义的类型不对吗?还是怎么的
前面用了同样的程序读TXT文件都是没问题的
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2012-9-13
在线时间
8 小时
发表于 2016-8-31 12:10:25 | 显示全部楼层
你这样读数据:
while(1)
{
  res = f_read(&fdst, textFileBuffer2, sizeof(textFileBuffer2), &bw);//textFileBuffer2:是一个数组  sizeof(textFileBuffer2) 是一个常量
  if (res || br == 0) break;
}
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-8-31 12:37:11 | 显示全部楼层
smallshuo 发表于 2016-8-31 09:26
这个 res = f_read(&fdst, textFileBuffer2, sizeof(textFileBuffer2), &bw);

f_wirte之后需要f_close之后,读取才是正确的,否则没有
这个是我的操作res = f_read(fftemp, tempbuf, iap_send_length, (UINT *)&bread);  //读取文件数据
                        if (res != FR_OK)
                        {
                                printf("File read error\r\n");
                                break;  //读取出错,不干了
                        }
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
 楼主| 发表于 2016-8-31 14:41:22 | 显示全部楼层
得得 发表于 2016-8-31 12:10
你这样读数据:
while(1)
{

我这样试了 结果还是读出来的东西不对啊,跟res = f_open(&fdst,"0:/PIC1.bin",FA_CREATE_NEW | FA_WRITE);有什么关联吗?可以直接这样读bin文件吗?我的textFileBuffer2是uint8_t textFileBuffer2[] ="";一个数据类型,不知道还有哪里有问题
回复

使用道具 举报

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
 楼主| 发表于 2016-8-31 14:43:04 | 显示全部楼层
八度空间 发表于 2016-8-31 12:37
f_wirte之后需要f_close之后,读取才是正确的,否则没有
这个是我的操作res = f_read(fftemp, tempbuf,  ...

已经按这个方法来了,可是都出来还是不对,bin文件的生成是用的原子的C2B软件,这个应该没错吧?
res = f_open(&fdst,"0:/PIC1.bin",FA_CREATE_NEW | FA_WRITE);
PIC1.bin是我生成的bin文件,这样都出来没有问题吗?
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2012-9-13
在线时间
8 小时
发表于 2016-8-31 14:53:40 | 显示全部楼层
smallshuo 发表于 2016-8-31 14:41
我这样试了 结果还是读出来的东西不对啊,跟res = f_open(&fdst,"0:/PIC1.bin",FA_CREATE_NEW | FA_WRITE ...

那不知道了,我这样是可以读出来的。如果可以你上工程,帮你测试一下
回复

使用道具 举报

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
 楼主| 发表于 2016-8-31 15:24:16 | 显示全部楼层
得得 发表于 2016-8-31 14:53
那不知道了,我这样是可以读出来的。如果可以你上工程,帮你测试一下

好的 我上传给你 万分感激!!
回复

使用道具 举报

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
 楼主| 发表于 2016-8-31 15:25:43 | 显示全部楼层
就是这个工程,直接在test.c里面

文件系统.rar

6.48 MB, 下载次数: 38

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-8-31 20:10:30 | 显示全部楼层
.bin文件,不能以s%的方式发送的。   直接仿真,看textFileBuffer2的数据
回复

使用道具 举报

30

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-3-11
在线时间
123 小时
 楼主| 发表于 2016-9-1 09:15:13 | 显示全部楼层
正点原子 发表于 2016-8-31 20:10
.bin文件,不能以s%的方式发送的。   直接仿真,看textFileBuffer2的数据

哦哦 好的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-29 23:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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