OpenEdv-开源电子网

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

fatfs读取txt中文件出错,没找着问题在哪,求指教

[复制链接]

15

主题

52

帖子

1

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-1-21
在线时间
14 小时
发表于 2015-2-2 11:08:44 | 显示全部楼层 |阅读模式
5金钱
下面是程序代码
[mw_shl_code=c,true]int main(void) {         unsigned char shuzu[8]={'h','a','h','a','h','a','h'}; u8 *p; unsigned int t=0; FIL f_txt; Stm32_Clock_Init(9); delay_init(72); uart_init(72,9600); exfuns_init(); LCD_Init(); LED_Init(); usmart_dev.init(72); mem_init(); while(SD_Initialize()) { LCD_ShowString(60,150,200,16,16,"SD Card Error!"); delay_ms(200); LCD_Fill(60,150,240,150+16,WHITE); delay_ms(200); LED0=!LED0;//DS0???? } f_mount(fs[0],"0:",1); if((fp = f_open(&f_txt,"/data/INDEX.txt",FA_READ))==NULL) LCD_ShowString(60,130,200,16,16,"Failure to open"); f_read(&f_txt,p,50,&br); LCD_ShowString(20,150,200,16,16,p); f_close(&f_txt); while(1) { } }[/mw_shl_code]


最后屏幕上显示的是failure to open,但不知道自己哪一点不对,求指教

最佳答案

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

回复【8楼】子木阿伦: --------------------------------- 指针不申请内存,就去写数据,是做死的节奏啊
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-2-2 11:08:45 | 显示全部楼层
回复【8楼】子木阿伦:
---------------------------------
指针不申请内存,就去写数据,是做死的节奏啊
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

20

主题

122

帖子

0

精华

高级会员

Rank: 4

积分
639
金钱
639
注册时间
2014-6-20
在线时间
169 小时
发表于 2015-2-2 17:36:41 | 显示全部楼层
要一级级的打开,你这个要先打开data文件夹
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-2-2 18:16:00 | 显示全部楼层
仿真一下看下f_open函数返回什么参数,感觉你这写法不对,FR_OK定义的值好像就是0
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

15

主题

52

帖子

1

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-1-21
在线时间
14 小时
 楼主| 发表于 2015-2-2 21:43:52 | 显示全部楼层
回复【2楼】Fliger:
---------------------------------
但是这是我原来的程序,先以写入方式打开建立一个文件,然后关了以只读方式打开就可以,下面贴的程序就没事,上面的这个直接打开的程序就不行,这是为啥??求解答
int main(void)
{
unsigned char shuzu[8]={'h','a','h','a','h','a','h'};
// unsigned int *dat=&shuzu[];
//  u32 total,free;
u8 *p;
unsigned int t=0;
FIL f_txt;
   Stm32_Clock_Init(9);//?????±???è??
delay_init(72); //???±??????
uart_init(72,9600); //????1??????     
  exfuns_init(); //??fatfs?à??±????ê??????  
LCD_Init(); //?????????§ 
LED_Init();         //LED??????       
usmart_dev.init(72);
  mem_init(); //????????????
while(SD_Initialize()) //?ì??SD?¨
{
LCD_ShowString(60,150,200,16,16,"SD Card Error!");
delay_ms(200);
LCD_Fill(60,150,240,150+16,WHITE);//????????   
delay_ms(200);
LED0=!LED0;
}
f_mount(fs[0],"0:",1); 
fp=f_mkdir("0ATA");
fp=f_open(&f_txt,"/data/archer.txt",FA_OPEN_ALWAYS | FA_WRITE);
f_lseek(&f_txt,0); 
LED0=0;
for(t=1;t<30001;t++)
{
f_write(&f_txt,&shuzu,sizeof(shuzu),(UINT*)&br);
f_printf(&f_txt,"\t");
if(t%10==0)
f_printf(&f_txt,"\r\n");
}
    f_close(&f_txt);
LED0=1;
LCD_ShowString(60,150,200,16,16,"complished!!");
if((fp = f_open(&f_txt,"/data/INDEX.txt",FA_READ))!=NULL)
LCD_ShowString(60,130,200,16,16,"Failure to open");
f_read(&f_txt,p,50,&br);
LCD_ShowString(20,150,200,16,16,p);
f_close(&f_txt);
while(1)
{

}
}
回复

使用道具 举报

15

主题

52

帖子

1

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-1-21
在线时间
14 小时
 楼主| 发表于 2015-2-2 21:47:31 | 显示全部楼层
回复【3楼】八度空间:
---------------------------------
打开文件失败的话返回的就是NULL,我上面的程序多加了一个分号,才导致显示failure to open,但是我直接打开的方法就是无法读取index.txt文件中的数据。。还是没弄明白为啥
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-2-2 23:51:01 | 显示全部楼层
回复【5楼】子木阿伦:
---------------------------------
根据函数返回值分析问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

15

主题

52

帖子

1

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-1-21
在线时间
14 小时
 楼主| 发表于 2015-2-3 00:11:48 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
是用usmart么??还不懂得怎么看返回值。
回复

使用道具 举报

15

主题

52

帖子

1

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-1-21
在线时间
14 小时
 楼主| 发表于 2015-2-3 00:15:02 | 显示全部楼层
我一点一点试出来的,是p指针的问题,在声明中把*p改成p[100]这样的数组就好了,至于为什么这样,还不清楚
回复

使用道具 举报

15

主题

52

帖子

1

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2015-1-21
在线时间
14 小时
 楼主| 发表于 2015-2-3 13:53:36 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
呃呃,原来如此。。。谢谢原子哥了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-26 02:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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