2356|9

3249

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

于振南书上一个实验诡异的问题 [复制链接]

先上代码:

 

UINT8 znFAT_Enter_Dir2(INT8 *dirpath,UINT32 *pCluster,UINT32 *pos) 

{

 UINT8 index=0,res=0;

 UINT32 i=1;

// #ifndef USE_LFN

 INT8 dirname[13];

// #else

// INT8 dirname[MAX_LFN_LEN+1];

// #endif

 

 *pos=1;

 *pCluster=2;

printf("000\r\n");

 if(('\\'==dirpath[0] || '/'==dirpath[0]) && '\0'==dirpath[1]) //Èç¹ûÊÇ"\\"£¬ÔòÖ±½ÓÈ¡Ê×Ŀ¼´Ø£¬¼´µÚ2´Ø

 {

 printf("222\r\n");

  return ERR_SUCC;

 }

 //////////////////////////////

 printf("111\r\n");

 

 while('\0'!=dirpath)

 {

  if('\\'==dirpath || '/'==dirpath)

  {

   dirname[index]='\0';

   index=0;

   

   res=Get_Dir_Start_Cluster(dirname,pCluster);

   if(res) 

   { 

 printf("333\r\n");

return res;  //·µ»Ø´íÎóÂë  

   }

   *pos=i+1;

  } 

  else

  {

   dirname[index]=dirpath;

   index++;

   #ifndef USE_LFN

   if(index>12) //Èç¹û²»Ê¹Óó¤Ãû£¬ÔòĿ¼ÃûÒÔ¼°ÎļþÃû×²»Äܳ¬¹ý8+1+3

   {

printf("444\r\n");

return ERR_SFN_ILL_LEN; //Ŀ¼Ãû³¤ÓÚ8.3£¬Òà·ÀÖ¹dirnameÒç³ö

   }

   #else

   if(index>MAX_LFN_LEN) //Èç¹ûʹÓó¤Ãû£¬ÔòĿ¼ÃûÒÔ¼°ÎļþÃû×²»Äܳ¬¹ýÉ趨µÄ³¤Ãû×³¤¶È

   {

 printf("555\r\n");

return ERR_LFN_BUF_OUT; //Ŀ¼Ãû³¤ÓÚMAX_LFN_LEN£¬Òà·ÀÖ¹dirnameÒç³ö

   }   

   #endif

  }

  i++;

 }

 printf("666\r\n");  

 return ERR_SUCC; //³É¹¦

}

 

int main(void)

{  

UINT32 res=0,len=0;

UINT32 i,j,n,x,y;

UINT8 temp;

UINT32 ncluster=0; //Ö¸¶¨Ä¿Â¼ÎªÊ×Ŀ¼

UINT32 *p;

delay_init();

uart_init(115200); //´®¿Ú³õʼ»¯Îª115200

printf("´®¿ÚÉèÖÃÍê±Ï\r\n");

znFAT_Device_Init(); //´æ´¢É豸³õʼ»¯

  printf("SD¿¨³õʼ»¯Íê±Ï\r\n");

TFT_init2();

TFT_clear(0x001f);

TFT_GPIO_DeInit();

znFAT_Select_Device(0,&Init_Args); //Ñ¡ÔñÉ豸

TFT_init1();

TFT_clear(0x0000);

res=znFAT_Init(); //Îļþϵͳ³õʼ»¯  

 if(!res) //Îļþϵͳ³õʼ»¯³É¹¦

 {

printf("Suc. to init FS\r\n");

 

printf("BPB_Sector_No: %d",Init_Args.BPB_Sector_No);   

printf("Total_SizeKB: %d",Init_Args.Total_SizeKB); 

printf("BytesPerSector: %d",Init_Args.BytesPerSector); 

printf("FATsectors: %d",Init_Args.FATsectors);  

printf("SectorsPerClust: %d",Init_Args.SectorsPerClust); 

printf("FirstFATSector: %d",Init_Args.FirstFATSector); 

printf("FirstDirSector: %d",Init_Args.FirstDirSector); 

printf("FSsec: %d",Init_Args.FSINFO_Sec);

printf("Next_Free_Cluster: %d",Init_Args.Next_Free_Cluster);

printf("FreenCluster: %d\n",Init_Args.Free_nCluster); 

 }

 else //Îļþϵͳ³õʼ»¯Ê§°Ü

 {

printf("Fail to init FS , Err Code: %d",res);

 }

 printf("AAA\r\n");

 //if(!znFAT_Enter_Dir("\\ABC\\A\\B\\C\\D\\E\\F\\G\\H\\I\\J\\",&ncluster,p))

 if(!znFAT_Enter_Dir2("\\ABC\\",&ncluster,p))

 {

 printf("start cluster is %d\n",ncluster);

 }

 else

 {

 printf("fail.\n");

 }

 printf("BBB\r\n");

return 0;

 //while(1);     

}   

定义了一个函数:

UINT8 znFAT_Enter_Dir2(INT8 *dirpath,UINT32 *pCluster,UINT32 *pos) 

功能是进入一个目录,获取目录的开始簇。

程序下载进去,用串口助手查看,如下:

只打印到AAA就停止了。

我在znFAT_Enter_Dir2这个函数内部也设置了好多打印语句,可是一句也没打印出来。

貌似进入该函数以后,出不来了,而且好像什么也没执行。

我感到很奇怪,百思不得其解。

还有一个问题,UINT8,UINT32明明定义了,可是双击找定义的地方,提示:

求高手解惑,谢谢!

此帖出自stm32/stm8论坛

最新回复

我最近也想搞一下FAT32的文件系统到时候向你请教啊   详情 回复 发表于 2020-2-26 08:04
点赞 关注
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 

回复
举报

2856

帖子

260

TA的资源

五彩晶圆(高级)

沙发
 

好多年前玩过,效率比较低,不建议玩

此帖出自stm32/stm8论坛
 
 

回复

4856

帖子

3

TA的资源

版主

板凳
 

居然是中文界面的,这种要比研究英文的要好多了,学起来也快啊

此帖出自stm32/stm8论坛
 
 

回复

295

帖子

1

TA的资源

版主

4
 

有给野指针*p;

UINT32 *p; 改成 UINT32 p;

 if(!znFAT_Enter_Dir2("\\ABC\\",&ncluster,p)) 改成  if(!znFAT_Enter_Dir2("\\ABC\\",&ncluster,&p))

 

试试看

此帖出自stm32/stm8论坛

点评

再次感谢,就是这个原因。  详情 回复 发表于 2020-2-25 18:44
谢谢,我试试  详情 回复 发表于 2020-2-25 10:04
 
 
 

回复

3249

帖子

0

TA的资源

五彩晶圆(初级)

5
 
hotsauce1861 发表于 2020-2-25 08:22 有给野指针*p; UINT32 *p; 改成 UINT32 p;  if(!znFAT_Enter_Dir2("\\ABC\\",&nclu ...

谢谢,我试试

此帖出自stm32/stm8论坛

点评

是不是执行了  *pos=1; 这个直接就挂掉了  详情 回复 发表于 2020-2-25 13:33
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

回复

295

帖子

1

TA的资源

版主

6
 

是不是执行了

 *pos=1;

这个直接就挂掉了

此帖出自stm32/stm8论坛

点评

谢谢!晚上我试试。  详情 回复 发表于 2020-2-25 13:39
 
 
 

回复

3249

帖子

0

TA的资源

五彩晶圆(初级)

7
 
闁哄被鍎冲﹢鍛村嫉椤掆偓缁楁﹢宕楅妸鈺佸姤閻犱降鍔忛鎴︽晬瀹€鍐惧殲闁谎嗩嚙缂嶏拷闁瑰瓨鐗為埀顒婃嫹婵炲鍔岄崬锟�
此帖出自stm32/stm8论坛
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

回复

3249

帖子

0

TA的资源

五彩晶圆(初级)

8
 
闁哄被鍎冲﹢鍛村嫉椤掆偓缁楁﹢宕楅妸鈺佸姤閻犱降鍔忛鎴︽晬瀹€鍐惧殲闁谎嗩嚙缂嶏拷闁瑰瓨鐗為埀顒婃嫹婵炲鍔岄崬锟�
此帖出自stm32/stm8论坛

点评

我最近也想搞一下FAT32的文件系统到时候向你请教啊  详情 回复 发表于 2020-2-26 08:04
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

回复

295

帖子

1

TA的资源

版主

9
 
闁哄被鍎冲﹢鍛村嫉椤掆偓缁楁﹢宕楅妸鈺佸姤閻犱降鍔忛鎴︽晬瀹€鍐惧殲闁谎嗩嚙缂嶏拷闁瑰瓨鐗為埀顒婃嫹婵炲鍔岄崬锟�
此帖出自stm32/stm8论坛

点评

没问题,互相学习  详情 回复 发表于 2020-2-26 08:06
 
 
 

回复

3249

帖子

0

TA的资源

五彩晶圆(初级)

10
 
闁哄被鍎冲﹢鍛村嫉椤掆偓缁楁﹢宕楅妸鈺佸姤閻犱降鍔忛鎴︽晬瀹€鍐惧殲闁谎嗩嚙缂嶏拷闁瑰瓨鐗為埀顒婃嫹婵炲鍔岄崬锟�
此帖出自stm32/stm8论坛
 
个人签名为江山踏坏了乌骓马,为社稷拉断了宝雕弓。
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条
电源解决方案和技术 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表