实现了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日
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日