U盤讀寫問題請教

我用的CH375串口模式,在向U盤寫入512字節(jié)數(shù)據(jù)后,再從U盤讀512字節(jié)數(shù)據(jù),中間需要延時8秒鐘時間,才能讀成功,不然,CH375的中斷會少于9個,但沒有錯誤返回,即讀出錯。U盤的program時間不需要延遲那么長時間吧?但在兩個寫入程序之間不需要延時。請教這是什么原因? 測試: WriteSector(address,512); delays(8); ReadSector(address,512); 讀和寫兩個函數(shù)都測試過,沒問題。波特率是默認(rèn)的9600bps


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

這個需要看下你的讀寫函數(shù)以及你的波特率的設(shè)置上面會不會誤差過大導(dǎo)致上述問題,我們這邊測試的時候沒有出現(xiàn)你說的上述的現(xiàn)象.


波特率9615,誤差:0.16% unsigned char ReadSector(unsigned int address,unsigned char*pBuffer) { unsigned int Sector; unsigned char Block=8,IntStatus,Block_Size; SendCH375CMD(DISK_READ); //send read data command SendSingleData(address&0xff); //send address SendSingleData((address>>8)&0xff); SendSingleData((address>>16)&0xff); SendSingleData((address>>24)&0xff); SendSingleData(1); //sector for(Block;Block!=0;Block--) { IntStatus=GetInterStatus(); //get the interrupt status if (IntStatus==USB_INT_DISK_READ) // USB存儲器讀數(shù)據(jù)塊,請求數(shù)據(jù)讀出 { SendCH375CMD(RD_USB_DATA); // 從CH375緩沖區(qū)讀取數(shù)據(jù)塊 Block_Size=GetSingleByte(); // 后續(xù)數(shù)據(jù)的長度 while (Block_Size--) // 根據(jù)長度讀取數(shù)據(jù) *(pBuffer++)=GetSingleByte(); // 將數(shù)據(jù)讀出 SendCH375CMD(DISK_RD_GO); // 繼續(xù)執(zhí)行USB存儲器的讀操作 } else break; // 返回錯誤狀態(tài) } if (Block==0) if((IntStatus=GetInterStatus())==USB_INT_SUCCESS) //等待中斷并獲取狀態(tài) return(0); // 操作成功

ClearError(); //清除U盤錯誤以便重試 return(IntStatus); // 操作失敗 }

寫函數(shù)與此類似


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

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