
实现了SD卡的加载,于是继续实现文件的打开 SD卡里面有个data.txt文件,其内容是 123 abc 下面要实现对文件的打开操作 在main函数中添加如下代码 sta = f_open(&fil,"data.txt",FA_OPEN_ALWAYS | FA_READ); if(sta) printf("SD Card open fail\r\n"); else printf("SD Card open\r\n"); 很顺利,没有打印fail ![]() 下面开始实现read文件,添加如下代码 sta = f_read(&fil, buffer, 1, &br); if (sta == FR_OK ) { printf("\r\n f_read() ok .. \r\n"); for(len =0;len<br;len++) printf("%c",buffer[len]); }else{ printf("\r\n f_read() fail .. \r\n"); } 输出结果是 f_read() ok .. 1 没有完全读完文件内容 仔细看了f_read,每次只能返回1个字符,于是在外面加个for循环,问题解决 for(t=0;t<512;t++) { sta = f_read(&fil, buffer, 1, &br); if (sta == FR_OK ) { // printf("\r\n f_read() ok .. \r\n"); for(len =0;len<br;len++) printf("%c",buffer[len]); }else{ printf("\r\n f_read() fail .. \r\n"); } } 打印结果见下图 ![]() 发帖与2018年3月13日 |