堆栈改大了也是卡死哦,不过后来我调试了下,发现程序是卡在打开路径函数那里了,单独的读一个文件运行正常,是我的文件系统没设置好么请问
[C]
纯文本查看 复制代码
void OutPutFile(void){ unsigned int a; FRESULT res; FILINFO finfo; DIR dirs;// int i;// char *fn; char path[50]={""}; printf("n file system(Tini-FatFa0.09a) starting! n"); //f_mount(0, &fsk); //main中已经定义过了 res = f_open(&fsrc,"hanhan.txt", FA_READ);if(!res){ br=1;a=0;for (;;) {for(a=0; a<512; a++) buffer[a]=0; res = f_read(&fsrc, buffer, sizeof(buffer), &br);printf("%sn",buffer); if (res || br == 0) break; // error or eof }}f_close(&fsrc); //if (f_opendir(&dirs, path) == FR_OK) //在操作系统中却不能执行,卡死在这// {// while (f_readdir(&dirs, &finfo) == FR_OK) // {// if (finfo.fattrib & AM_ARC) // {// if(!finfo.fname[0])// break; // printf("rn file name is:n %sn",finfo.fname); // } //}// }}void MainTask(void) {OS_ERR err;u32 total,free; GUI_Init();//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);uart_init(9600); //串口初始化为9600//SD_Init(); FSMC_SRAM_Init();//初始化外部SRAMmem_init(SRAMIN);//初始化内部内存池mem_init(SRAMEX);//初始化外部内存池exfuns_init();//为fatfs相关变量申请内存//SD_InitializeCards();//检测SD卡disk_initialize(0); f_mount(0,fs[0]); //挂载SD卡 //f_mount(1,fs[1]); //挂载FLASH.//GUI_SetColor(GUI_RED);//GUI_Clear();if(exf_getfree("0",&total,&free))//得到SD卡的总容量和剩余容量{GUI_DispStringAt("FAT Error",12,90);printf("FAT Errorrn");}GUI_DispDecAt(total>>10,10,10,6);GUI_DispDecAt(free>>10,10,30,6);show_sdcard_info();//打印SD卡相关信息OutPutFile();while(1){OSTimeDly( (OS_TICK )200, (OS_OPT )OS_OPT_TIME_DLY, (OS_ERR *)&err);}//while(1);}
堆栈改大了也是卡死哦,不过后来我调试了下,发现程序是卡在打开路径函数那里了,单独的读一个文件运行正常,是我的文件系统没设置好么请问
[C] 纯文本查看 复制代码
void OutPutFile(void){ unsigned int a; FRESULT res; FILINFO finfo; DIR dirs;// int i;// char *fn; char path[50]={""}; printf("n file system(Tini-FatFa0.09a) starting! n"); //f_mount(0, &fsk); //main中已经定义过了 res = f_open(&fsrc,"hanhan.txt", FA_READ);if(!res){ br=1;a=0;for (;;) {for(a=0; a<512; a++) buffer[a]=0; res = f_read(&fsrc, buffer, sizeof(buffer), &br);printf("%sn",buffer); if (res || br == 0) break; // error or eof }}f_close(&fsrc); //if (f_opendir(&dirs, path) == FR_OK) //在操作系统中却不能执行,卡死在这// {// while (f_readdir(&dirs, &finfo) == FR_OK) // {// if (finfo.fattrib & AM_ARC) // {// if(!finfo.fname[0])// break; // printf("rn file name is:n %sn",finfo.fname); // } //}// }}void MainTask(void) {OS_ERR err;u32 total,free; GUI_Init();//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);uart_init(9600); //串口初始化为9600//SD_Init(); FSMC_SRAM_Init();//初始化外部SRAMmem_init(SRAMIN);//初始化内部内存池mem_init(SRAMEX);//初始化外部内存池exfuns_init();//为fatfs相关变量申请内存//SD_InitializeCards();//检测SD卡disk_initialize(0); f_mount(0,fs[0]); //挂载SD卡 //f_mount(1,fs[1]); //挂载FLASH.//GUI_SetColor(GUI_RED);//GUI_Clear();if(exf_getfree("0",&total,&free))//得到SD卡的总容量和剩余容量{GUI_DispStringAt("FAT Error",12,90);printf("FAT Errorrn");}GUI_DispDecAt(total>>10,10,10,6);GUI_DispDecAt(free>>10,10,30,6);show_sdcard_info();//打印SD卡相关信息OutPutFile();while(1){OSTimeDly( (OS_TICK )200, (OS_OPT )OS_OPT_TIME_DLY, (OS_ERR *)&err);}//while(1);}
举报