CH376使用STC單片機(jī)串口控制無法向U盤寫文件

CH376使用STC單片機(jī)串口控制,按照例程修改,程序可以正常跑完,但無法在U盤中創(chuàng)建文件,ACT輸出低電平。

s = mInitCH376Host(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* 初始化CH376 */

mStopIfError(s);

while (1)?

{

while (CH376DiskConnect()!= USB_INT_SUCCESS) ? ? ? /* 檢查U盤是否連接,等待U盤插入,對(duì)于SD卡,可以由單片機(jī)直接查詢SD卡座的插拔狀態(tài)引腳 */

{ ?

mDelaymS(100);

}

mDelaymS(200); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* 延時(shí),可選操作,有的USB存儲(chǔ)器需要幾十毫秒的延時(shí) */

for ( i = 0; i < 100; i ++ ) ? ? ? ? ? ? ? ? ? ? ? /* 最長(zhǎng)等待時(shí)間,100*50mS */

{ ?

mDelaymS(50);

s = CH376DiskMount(); ? ? ? ? ? ? ? ? ? ? ? ? /* 初始化磁盤并測(cè)試磁盤是否就緒 */

mDelaymS(5);

if ( s == USB_INT_SUCCESS ) ? ? ? ? ? ? ? ? ? ?/* 準(zhǔn)備好 */

break; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

else if ( s == ERR_DISK_DISCON ) ? ? ? ? ? ? ? ? ? ? ? /* 檢測(cè)到斷開,重新檢測(cè)并計(jì)時(shí) */

break; ?

if ( CH376GetDiskStatus() >= DEF_DISK_MOUNTED && i >= 5 ) ? ? ? ? ?/* 有的U盤總是返回未準(zhǔn)備好,不過可以忽略,只要其建立連接MOUNTED且嘗試5*50mS */

? ?break; ? ? ? ? ??

}

if ( s == ERR_DISK_DISCON ) ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* 檢測(cè)到斷開,重新檢測(cè)并計(jì)時(shí) */

{ ?

continue;

}

if ( CH376GetDiskStatus() < DEF_DISK_MOUNTED ) ? ? ? ? ? /* 未知USB設(shè)備,例如USB鍵盤、打印機(jī)等 */

{ ?

goto UnknownUsbDevice;

}

i = CH376ReadBlock(buf); ? ? ? ? ? ? ? ? /* 如果需要,可以讀取數(shù)據(jù)塊CH376_CMD_DATA.DiskMountInq,返回長(zhǎng)度 */

mDelaymS(5);

if ( i == sizeof(INQUIRY_DATA) ) ? ? ? ? /* U盤的廠商和產(chǎn)品信息 */

? ?{ ?

buf[i] = 0;

}


/******************************* 創(chuàng)建新文件 ***********************************/ ??

strcpy( TarName, "\\FILE1.TXT" );

s = CH376FileCreatePath( TarName ); ? ?/* 新建多級(jí)目錄下的文件,支持多級(jí)目錄路徑,輸入緩沖區(qū)必須在RAM中 */

mStopIfError( s );

strcpy( buf, "123456789\xd\n" );

s = CH376ByteWrite( buf, strlen(buf), NULL ); ? ? ? ? /* 以字節(jié)為單位向當(dāng)前位置寫入數(shù)據(jù)塊 */

mStopIfError( s );

s = CH376FileClose( TRUE ); ? ? ? ? ? ? ? ? ? ? ? ? ? /* 關(guān)閉文件,對(duì)于字節(jié)讀寫建議自動(dòng)更新文件長(zhǎng)度 */

mStopIfError( s );

//P54 = 1;

mDelaymS( 500 );


UnknownUsbDevice:/* 未知設(shè)備 */

? ??

while ( CH376DiskConnect( ) == USB_INT_SUCCESS ) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* 檢查U盤是否連接,等待U盤拔出 */

{ ?

mDelaymS( 100 );

}

mDelaymS( 200 );

}

請(qǐng)問是什么原因?謝謝

所有的狀態(tài)都返回的是成功的嘛?

還有問下芯片是從哪邊購(gòu)買的?建議你將U盤在XP系統(tǒng)下面格式化下在測(cè)試下?


? ? ? ? ? ? ? ? ? ? ? ? ? ?

所有的狀態(tài)都返回的是成功的嘛?

還有問下芯片是從哪邊購(gòu)買的?建議你將U盤在XP系統(tǒng)下面格式化下在測(cè)試下?

? ? ? ? ? ? ? ? ? ? ? ?

將U盤在XP系統(tǒng)下格式化后試了試,可以了,謝謝您的幫助!

芯片不是我買的,我只是負(fù)責(zé)調(diào)試的,所以不清楚。


建議芯片從我司購(gòu)買。


? ? ? ? ? ? ? ? ? ? ? ? ? ?

建議芯片從我司購(gòu)買。

? ? ? ? ? ? ? ? ? ? ? ?

請(qǐng)問為什么需要XP下格式化才行呢?

從貴公司購(gòu)買的話是不是所使用的U盤就不需要在XP下格式化了,在其他系統(tǒng)下格式化也行?


謝謝!


是的


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

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