这是我从网上找的代码,有个问题,就是此处 “ res表示不成功,br==0表示到结尾 但是res应该return FALSE吧??”
//我这个是打开1.dsb,并读取的
//读文件测试===================================
BOOL SdRead(void)
{
FATFS fs;
FIL fsrc;
char buffer[512] = {0};
UINT br;
FRESULT res;
int i;
//// PRINTF_S("I'll read file 'aa.txt'\r\n");
// Register a work area for logical drive 0
f_mount(0, &fs);
//Open source file
res = f_open(&fsrc, "1.dsb", FA_OPEN_EXISTING | FA_READ);
if (res) {
//// PRINTF_S("Can't open 'aa.txt' for read\r\n");
//Unregister a work area before discard it
return FALSE;
}
else {
for (;;)
{
res = f_read(&fsrc, buffer, sizeof(buffer), &br);
if (res || br == 0) // error or eof res表示不成功,br==0表示到结尾 但是res应该return FALSE吧??
break;
for ( i = 0; i < br; ++i )
{
//PRINTF_M("%c", buffer);
//其间触发发送,buf清空
}
}
f_close(&fsrc);
//PRINTF_S("\r\n");
}
f_mount(0, NULL);
return TRUE;
}
------解决思路----------------------
如果打开函数成功则返回OK这个值是零,就是你else中的程序,返回true;
如果打开函数不成功,应该返回false的,没有问题,可以参考网站:http://elm-chan.org/fsw/ff/00index_e.html