CH376S怎么讀取U盤廠商信息

感覺資料里的程序有錯誤


UINT8CH376ReadBlock( PUINT8 buf ) ?/* 從當前主機端點的接收緩沖區(qū)讀取數(shù)據(jù)塊,返回長度 */

{

UINT8s, l;

xWriteCH376Cmd( CMD01_RD_USB_DATA0 );

s = l = xReadCH376Data( ); ?/* 長度 */

if ( l ) {

do {

*buf = xReadCH376Data( );

buf ++;

} while ( -- l );

}

xEndCH376Cmd( );

return( s );

});

//}




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

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

//buf[ s ] = 0;

//printf( "UdiskInfo: %s\n", ((P_INQUIRY_DATA)buf) -> VendorIdStr );

//}


你可以看一下CH376_CMD_DATA這個結(jié)構(gòu)體,在DISK_MOUNT命令之后返回 INQUIRY命令的返回數(shù)據(jù)。所以你可以用CMD01_RD_USB_DATA0讀取返回的數(shù)據(jù),U盤廠商信息在INQUIRY_DATA這個結(jié)構(gòu)體。

INQUIRY_DATA?? ?DiskMountInq;?? ??? ??? ?/* 返回: INQUIRY命令的返回數(shù)據(jù) */
?/* CMD0H_DISK_MOUNT: 初始化磁盤并測試磁盤是否就緒,首次執(zhí)行時 */


返回值都是0X14怎么回事,用的就是資料里的程序


之前檢查設(shè)備是否準備好時,U盤一直返回的是為準備好,是通過判斷跳出循環(huán)的。有影響嗎


CH376ReadBlock這個函數(shù)的返回值是長度,你可以進入這個函數(shù)里面查看一下返回值。


我一步一步試了一下

CH376S芯片的初始化通過

檢測U盤是否連接也通過了

但是發(fā)CMD0H_DISK_MOUNT指令后,一直沒有中斷產(chǎn)生,這是怎么回事?是硬件問題嗎?


你首先檢測U盤連接??匆幌轮袛嗄_的狀態(tài)(插入U盤INT拉低,調(diào)用獲取中斷狀態(tài)命令(0x22),INT拉高。調(diào)用0x30命令,INT拉低,調(diào)用獲取中斷狀態(tài)命令(0x22),INT拉高。)。然后使用DISK_MOUNT(0x31)操作也是一樣。你可以查看一下INT腳的狀態(tài)。


U盤的問題,換了個,讀出來了


順便提一個問題,檢測u盤是否插入,有20%的失敗率,怎么解決?u盤的電源電壓穩(wěn)定,程序上怎么改進


解決了,單片機起電有問題


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

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