我用的是ch375主機控制U盤 首先感謝這些天大家的幫忙,小弟的電路初步完成,初始化已成功。再次感謝貴公司的技術支持的答復 luoye.hcn,Skunk,和刀刀,以及各位幫助我的兄弟們。。。。 這里還要繼續(xù)請教: 1.在初始化完成后,我的程序 老死在打開文件這一步: i = CH375FileOpen( ),跳不出來~~ 2.我用的是清華紫光的1G優(yōu)盤,但是 顯示出來的 大小是2246MB printf( "TotalSize = %u MB \n", (unsigned int)( mCmdParam.DiskSize.mDiskSizeSec >> 11 ) ); // 顯示為以MB為單位的容量 現(xiàn)在開始 準備讀寫U盤了,但被這個打開文件函數(shù)就給卡住了,希望大家繼續(xù)給于幫助 代碼就是用的公司的: main( ) { UINT8 i, c; UINT16 TotalCount; UINT8 code *pCodeStr; LED_OUT_INIT( ); LED_OUT_ACT( ); /* 開機后LED亮一下以示工作 */ mDelay100mS( ); /* 延時100毫秒 */ LED_OUT_INACT( ); mInitSTDIO( ); /* 為了讓計算機通過串口監(jiān)控演示過程 */ printf( "Start\n" );
i = CH375LibInit( ); /* 初始化CH375程序庫和CH375芯片,操作成功返回0 */ mStopIfError( i ); /* 其它電路初始化 */
while ( 1 ) { printf( "Wait Udisk\n" ); while ( CH375DiskStatus != DISK_CONNECT ) xQueryInterrupt( ); /* 查詢CH375中斷并更新中斷狀態(tài),等待U盤插入 */ // while ( CH375DiskStatus < DISK_CONNECT ) { /* 查詢CH375中斷并更新中斷狀態(tài),等待U盤插入 */ // if ( CH375DiskConnect( ) == ERR_SUCCESS ) break; /* 有設備連接則返回成功,CH375DiskConnect同時會更新全局變量CH375DiskStatus */ // mDelay100mS( ); // } LED_OUT_ACT( ); /* LED亮 */ mDelay100mS( ); /* 延時,可選操作,有的USB存儲器需要幾十毫秒的延時 */ mDelay100mS( );
/* 檢查U盤是否準備好,有些U盤不需要這一步,但是某些U盤必須要執(zhí)行這一步才能工作 */ for ( i = 0; i < 5; i ++ ) { /* 有的U盤總是返回未準備好,不過可以被忽略 */ mDelay100mS( ); printf( "Ready ?\n" ); if ( CH375DiskReady( ) == ERR_SUCCESS ) break; /* 查詢磁盤是否準備好 */ } /* 查詢磁盤物理容量 */ /* printf( "DiskSize\n" ); i = CH375DiskSize( ); mStopIfError( i ); printf( "TotalSize = %u MB \n", (unsigned int)( mCmdParam.DiskSize.mDiskSizeSec >> 11 ) ); 顯示為以MB為單位的容量 */ LED_RUN_ACT( ); /* 開始操作U盤 */
/* 讀取原文件 */ printf( "Open\n" ); mCopyCodeStringToIRAM( mCmdParam.Open.mPathName, "/C51/CH375HFT.C" ); /* 文件名,該文件在C51子目錄下 */ i = CH375FileOpen( ); /* 打開文件 */[b]文字[/b]