讀出的數(shù)據(jù)丟字節(jié)

我讀U盤的第一個扇區(qū),最后是55AA,可是我顯示出來總是55AAAA; 前面有的數(shù)據(jù)也重復,不知道怎么回事,高手解答。

可能是讀寫時序有問題,可以把CH375讀寫子函數(shù)貼出來看看.


如果你是采用并口方式的話,那可能會存在你的并口上面會不會存在干擾問題而導致讀取數(shù)據(jù)出現(xiàn)錯誤.


用的是模擬并口,D0-D7接P1,CS接地,A0接P3^5,R接P3^6,W接P3^7 ////////////////////375//發(fā)送命令函數(shù)/////////////////////////////////// void SendCom(byte command) { CH375_D0_D7=command; A0=1;W=0;R=1; W=1;R=1; }

////////////////////375讀數(shù)據(jù)函數(shù)/////////////////////////////////// void ReadDat(byte *pbuf,byte num) { byte i; for(i=0;i { A0=0;W=1;R=0; delay(60); *pbuf=CH375_D0_D7; if(i pbuf++; delay(60); W=1;R=1; } } 有錯誤嗎?并且每次讀的時候總是哪一個地方丟一個字節(jié)。

byte ReadSector(unsigned long begin_num,byte n,byte *buf) { byte i,len; SendCom(DISK_READ); WriteOneDat((byte)begin_num); WriteOneDat((byte)(begin_num>>8)); WriteOneDat((byte)(begin_num>>16)); WriteOneDat((byte)(begin_num>>24)); WriteOneDat(n); for(i=0;i<8;i++) { if(WaitInterrupt()==USB_INT_DISK_READ) { SendCom(READ_USB_DATA); ReadDat(&len,1); ReadDat(buf,len); buf+=64; SendCom(DISK_READ_GO); } else break; } if(WaitInterrupt()!=USB_INT_SUCCESS) { Clr_Scr(); 在lcd上輸出Read_Sector_Err return 0; } return 1; }

每次都不輸出錯誤。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频