OpenEdv-开源电子网

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

关于f_lseek的问题

[复制链接]

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
发表于 2016-3-29 20:38:16 | 显示全部楼层 |阅读模式
5金钱
每秒想往内存卡中写入读取到的数据,想运用f_lseek函数,但是用串口调试助手打印出fsize的值是不变的。也用了f_size这个函数,但还是不能接着上一次的数据往下写, QQ截图20160329203723.png 这是我把file->fsize打印出来,一直是0,



最佳答案

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

f_open (file,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE); 你用了FA_CREATE_ALWAYS,是创建一个新文件,file->fsize当然是0 2.2 f_open 创建/打开一个用于访问文件的文件对象 FRESULT f_open ( FIL* FileObject, /* 空白文件对象结构指针*/ const XCHAR* FileName, /* 文件名指针*/ BYTE ModeFlags /* 模式标志*/ ); 参数 FileObject将被创建的文件对象结构的指针。 FileName NULL结尾的字符串指针,该 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-12-17
在线时间
66 小时
发表于 2016-3-29 20:38:17 | 显示全部楼层
f_open (file,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE);

你用了FA_CREATE_ALWAYS,是创建一个新文件,file->fsize当然是0

2.2 f_open
创建/打开一个用于访问文件的文件对象
FRESULT f_open (
FIL* FileObject, /* 空白文件对象结构指针*/
const XCHAR* FileName, /* 文件名指针*/
BYTE ModeFlags /* 模式标志*/
);
参数
FileObject将被创建的文件对象结构的指针。
FileName
NULL结尾的字符串指针,该字符串指定了将被创建或打开的文件名。
ModeFlags指定文件的访问类型和打开方法。它是由下列标志的一个组合指定的。
模式                       描述
FA_READ                 指定读访问对象。可以从文件中读取数据。与FA_WRITE结合可以进行读写访问。
FA_WRITE               指定写访问对象。可以向文件中写入数据。与FA_READ结合可以进行读写访问。
FA_OPEN_EXISTING  打开文件。如果文件不存在,则打开失败。(默认)
FA_OPEN_ALWAYS   如果文件存在,则打开;否则,创建一个新文件。
FA_CREATE_NEW    创建一个新文件。如果文件已存在,则创建失败。
FA_CREATE_ALWAYS  创建一个新文件。如果文件已存在,则它将被截断并覆盖。
注意:当_FS_READONLY == 1 时,模式标志FA_WRITE, FA_CREATE_ALWAYS, FA_CREATE_NEW,
FA_OPEN_ALWAYS 是无效的。
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-3-29 20:39:34 | 显示全部楼层
[mw_shl_code=applescript,true]if(USART2_RX_STA&0X8000)//串口2收到数据了
                {
                        //Show_Str(0,0,240,16,"串口收到数据了",16,0);
                        rxlen=12;                    //得到数据长度
                        write_buf=mymalloc(SRAMIN,FILE_MAX_SIZE); //申请FILE_MAX_SIZE字节的空间
                       
                        for(i=0;i<12;i++)
                        {
                                write_buf=USART2_RX_BUF;
                        }
                        f_open (file,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE);
                        printf("创建文件\r\n");
      res=f_lseek(file,file->fsize);//移动文件指针
                        printf("%d\r\n",file->fsize);
                        res=f_write(file,write_buf,rxlen,&br);//向文件内写入字符串
                        printf("写入数据\r\n");
                        res=f_close(file);   //关闭打开的文件
            printf("关闭文件\r\n");       
                        myfree(SRAMIN,write_buf);                       
                        USART2_RX_STA=0; //启动下一次接收                       
       
        }[/mw_shl_code]
这是主函数中的代码,用串口调试助手看串口每秒都可以收到数据
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-3-29 20:41:05 | 显示全部楼层
但是我用res=f_lseek(file,a),每次循环a+20的话,可以在TXT中保存接收的多次数据
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-3-25
在线时间
3 小时
发表于 2016-3-29 21:35:56 | 显示全部楼层
我也在研究串口接收数据写入flash的问题,求交流~~
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-3-30 07:55:45 | 显示全部楼层
monky 发表于 2016-3-29 21:35
我也在研究串口接收数据写入flash的问题,求交流~~

我还没搞出来呢
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-3-30 08:52:30 | 显示全部楼层
xiaowu191 发表于 2016-3-29 20:38
f_open (file,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE);

你用了FA_CREATE_ALWAYS,是创建一个新文 ...

恩,果然是这样,但是我用res=f_lseek(file,a),每次循环a+20,强制移动指针,就能在文件中有多次采集的数据了
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-3-30 19:02:05 | 显示全部楼层
xiaowu191 发表于 2016-3-29 20:38
f_open (file,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE);

你用了FA_CREATE_ALWAYS,是创建一个新文 ...

你好,还想问问你这个翻译版本是在哪找的?方便给个网址吗?
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-12-17
在线时间
66 小时
发表于 2016-3-30 19:45:14 | 显示全部楼层
昊430 发表于 2016-3-30 19:02
你好,还想问问你这个翻译版本是在哪找的?方便给个网址吗?

不记得哪里找的了,上传到这里好了

FATFS浅谈.pdf (248.35 KB, 下载次数: 838)
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-3-30 20:23:21 | 显示全部楼层
xiaowu191 发表于 2016-3-30 19:45
不记得哪里找的了,上传到这里好了

多谢分享
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 05:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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