感谢上面各位的解答,由于在回复的时候不知道怎么贴代码,就把代码贴在这里,统一回复各位
昨天在加入下面红色高亮的两个语句,第二次读取就出现数据错误,今天又试了下,发现又可以了
void test(void)
{
FIL file;
UINT br;
int i,j;
BLOCK_DATA p;
char a[4];
SD_CS=0;
f_open(&file, "0:/111", FA_READ);
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
f_lseek (&file, 72*4*(23-1+j)+4*(42-1+i));
f_read(&file, p.bytes, sizeof(BLOCK_DATA), &br);
block_data[i][j].block.listCount = p.block.listCount;
block_data[i][j].block.offset = p.block.offset;
sprintf(a, "%x", block_data[i][j].block.listCount);
LCD_ShowString(10,(10+i*60+j*20),72,16,16,a,WHITE,RED);
sprintf(a, "%x", block_data[i][j].block.offset);
LCD_ShowString(80,(10+i*60+j*20),72,16,16,a,WHITE,RED);
}
}
f_close(&file);
delay_ms(1000);
SD_CS=1;
}