测试FatFS文件系统的时候,到了调用sprintf的时候,就直接跳到了HardFault_Handler看网上也有好多遇到此类问题的,但内有找到答案
这个应该如何处理?
[C] 纯文本查看 复制代码static FRESULT scan_files(char* path)
{
FRESULT res;
FILINFO fno;
DIR dir;
uint16_t i;
char *fn;
res = f_opendir(&dir,path);
if(res==FR_OK){
i=strlen(path);
for(;;)
{
res = f_readdir(&dir , &fno); //读文件的下一个内容
if(res!=FR_OK || fno.fname[0]==0) break;
fn=fno.fname;
//如果是当前目录则跳过
if(*fn=='.') continue;
if(fno.fattrib & AM_DIR)
{
//目录,递归调用
sprintf(&path,"/%s",fn); //合成完整目录名
printf("[D]%s\n",path);
res=scan_files(nn);
path=0;
if(res!=FR_OK)break;
}else{
//输出文件信息
printf("\t%s/%s\n",path,fn);
}
}
}
return res;
} |