CH374用SPI方式新建文件問題

用51軟件模擬SPI控制CH374,扇區(qū)讀寫, #if DISK_BASE_BUF_LEN == 0 pDISK_BASE_BUF = &buffer[0]; /* 不在.H文件中定義CH374的專用緩沖區(qū),而是用緩沖區(qū)指針指向其它應(yīng)用程序的緩沖區(qū)便于合用以節(jié)約RAM */ #endif 因為RAM較少,buffer[512]共用, MAIN函數(shù)里先用W25_Read(0x8000+512,buffer,256);從FLASH里讀256字節(jié)到buffer。然后調(diào)用CH374庫文件檢測U盤,新建文件 printf( "Create\n" ); strcpy( mCmdParam.Create.mPathName, "\\NEWFILE.TXT" ); /* 新文件名,在根目錄下 */ i = CH374FileCreate( ); /* 新建文件并打開,如果文件已經(jīng)存在則先刪除后再新建 */ mStopIfError( i ); printf( "Write\n" ); mCmdParam.WriteX.mSectorCount = 1; /* 寫入所有扇區(qū)的數(shù)據(jù) */ for(count=0;count<256;count++) {printf( "%02x", (UINT16)buffer[count] );} mCmdParam.WriteX.mDataBuffer = &buffer[0]; /* 指向文件數(shù)據(jù)緩沖區(qū)的起始地址 */ i = CH374FileWriteX( ); /* 向文件寫入數(shù)據(jù) */ mStopIfError( i ); mCmdParam.WriteX.mDataBuffer = &buffer[0]; 指向buffer,但是我這里打印出來的數(shù)據(jù)和先前從FLASH里讀的數(shù)據(jù)不一樣,調(diào)用CH374FileWriteX( ); 返回正確,生成的文件是U盤其它文件的內(nèi)容。請問是怎么回事? 從現(xiàn)象看buffer[]的內(nèi)容被改變了,應(yīng)該如何處理呢?[Emot]8[/Emot]

你是DISk_BASE_BUF也用的buffer緩沖區(qū)嗎? 這樣的話就是共用緩沖區(qū)模式。你重新建立一個小的緩沖區(qū),你先用字節(jié)方式將這個緩沖區(qū)的數(shù)據(jù)寫到文件,寫完后關(guān)閉,看數(shù)據(jù)是否正確。


DISK_BASE_BUF_LEN = 0;沒有 定義DISK_BASE_BUF


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

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