CH375問題

我用的是LPC2114+CH375評估板。 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盤插入 */ LED_OUT_ACT( ); /* LED亮 */ mDelaymS( 200 ); /* 延時,可選操作,有的USB存儲器需要幾十毫秒的延時 */

/* 檢查U盤是否準(zhǔn)備好,有些U盤不需要這一步,但是某些U盤必須要執(zhí)行這一步才能工作 */ for ( i = 0; i < 15; i ++ ) { /* 有的U盤總是返回未準(zhǔn)備好,不過可以被忽略 */ mDelaymS( 100 ); printf( "Ready ?\n" ); if ( CH375DiskReady( ) == ERR_SUCCESS ) break; /* 查詢磁盤是否準(zhǔn)備好 */ } /* 查詢磁盤物理容量 */ i=CH375GetVer(); printf("%d\n",i); printf( "DiskSize\n" ); i = CH375DiskSize( ); mStopIfError( i ); xWriteCH375Cmd(CMD_DISK_SIZE); printf( "TotalSize = %d MB \n", (unsigned int)(mCmdParam.DiskSize.mDiskSizeSec<<11)); // 顯示為以MB為單位的容量

前面都正確,為什么返回的TotalSize=0(磁盤容量)?

你這種計算方法是不正確的,mCmdParam.DiskSize.mDiskSizeSec是總的扇區(qū)數(shù).正確的方法是: printf( "DiskSize\n" ); i = CH375DiskSize( ); mStopIfError( i ); printf( "TotalSize = %u MB \n", (unsigned int)( mCmdParam.DiskSize.mDiskSizeSec * (CH375vSectorSize/512) / 2048 ) ); // 顯示為以MB為單位的容量 xWriteCH375Cmd(CMD_DISK_SIZE);是沒有必要的.CH375DiskSize( )函數(shù)里已經(jīng)發(fā)了這個命令.發(fā)完這個命令后,會返回8個字節(jié)的數(shù)據(jù).


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

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