完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 倔强的青槐 于 2015-3-26 22:01 编辑 学习FATFS文件系统的时候发现,运行一段代码无论使用f_write写多少次,串口总是输出第一次写的数据,后面再次写的都没有出现,代码如下: BYTE textFileBuffer[] = "Welcome"; f_mount(0,&fs); /* Create new file on the drive 0 */ res = f_open(&fnew, "0:newfile2.txt",FA_OPEN_ALWAYS | FA_WRITE ); if ( res == FR_OK ) { f_lseek(&fnew,fnew.fsize); res = f_write(&fnew, textFileBuffer, sizeof(textFileBuffer), &bw); f_close(&fnew); } res = f_open(&fnew, "0:newfile.txt", FA_OPEN_EXIStiNG | FA_READ); res = f_read(&fnew, buffer, sizeof(buffer), &br); printf(" rn %s", buffer); /* Close open files */ f_close(&fnew); /* Unregister work area prior to discard it */ f_mount(0, NULL); 最后发现原因,在运行 res = f_write(&fnew, textFileBuffer, sizeof(textFileBuffer), &bw) 这条指令时,sizeof(textFileBuffer)(就是计算welcome的长度)的结果是8,就是把"welcome"最后的结尾标志符' |