最近想做一个GPS定位,外加SD卡存储GPS信息。但是不知道怎么操作读写指针,LCD显示是按照我意思,但是打开SD卡之后看到的
写入的数不是自己想要的,主要是数据不全。我的想法是:第一次写入10个字符(先写6个,然后后面4个是回车换行),然后再写入
10个字符,但是发现第一次写入的数据被覆盖了,这个是写指针的问题吧?读指针应该没有问题吧?
//////////////////////////////////////////////////////////////这是我程序//////////////////////////////////////////////////////////////////////
//定义变量
FIL fil;
FRESULT res;
UINT bww;
char buf[50];
//创建文件
res=f_open(&fil,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE);
f_close(&fil);
//写10个字符
res=f_open (&fil,"0:/message.txt", FA_WRITE|FA_READ);
f_write (&fil, "ABCDEF\r\n", 10, &bww); //写6个字符,加回车换行
f_lseek(file,10); //移动指针
f_close(&fil);
res=f_open(&fil,"0:/message.txt", FA_WRITE|FA_READ);
f_read (&fil, buf,10,&bww);
f_close(&fil);
LCD_ShowString(10,300,230,24,24,(u8 *)buf);
//写10个字符
res=f_open (&fil,"0:/message.txt", FA_WRITE|FA_READ);
f_lseek(file,20); //移动指针
f_write(&fil, "BBCDEFGHJK", 10, &bww);
f_close(&fil);
res=f_open(&fil,"0:/message.txt", FA_WRITE|FA_READ);
f_lseek(file,20); //移动指针
f_read (&fil, buf,10,&bww);
f_close(&fil);
LCD_ShowString(10,340,230,24,24,(u8 *)buf);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
当我改了一下写指针的时候发现第二次写的10字符没有显示出来,
程序是这样改的
//写10个字符,第二次写
res=f_open (&fil,"0:/message.txt", FA_WRITE|FA_READ);
f_lseek(file,20); //移动指针
f_write(&fil, "BBCDEFGHJK", 10, (&bww)+10);
f_close(&fil);
|