各位大哥們,小弟用C8051F020控制CH375A讀取U盤遇到了些問題。麻煩幫我看一看: 我初始化MP3盤,并且讀取MP3的容量,這些都正常,不過運行到CH375FileOpen( )函數(shù) 時,程序就停止了; 就是這里:(我MP3盤里有這個文件) mCopyCodeStringToIRAM( mCmdParam.Open.mPathName, "http://C51/CH375HFT.C" ); /* 文件名,該文件在C51子目錄下 */ i = CH375FileOpen( ); /* 打開文件 */
我等了幾分鐘,程序都沒有往下運行了;手動停止的時候,程序好像是停在了這個函數(shù):
void xQueryInterrupt( void ) /* 查詢CH375中斷并更新中斷狀態(tài) */ { while ( CH375_INT_WIRE ); /* 如果CH375的中斷引腳輸出高電平則等待 */ CH375_CMD_PORT = CMD_GET_STATUS; /* 獲取當前中斷狀態(tài) */ CH375IntStatus &= 0x80; if ( CH375IntStatus ) CH375IntStatus = 0; /* 操作無意義,用于至少延時2uS */ CH375IntStatus = CH375_DAT_PORT; /* 獲取中斷狀態(tài) */ if ( CH375IntStatus == USB_INT_DISCONNECT ) CH375DiskStatus = DISK_DISCONNECT; /* 檢測到USB設(shè)備斷開事件 */ else if ( CH375IntStatus == USB_INT_CONNECT ) CH375DiskStatus = DISK_CONNECT; /* 檢測到USB設(shè)備連接事件 */ }
程序死在了while ( CH375_INT_WIRE );不過,當我將這個函數(shù)改為:
void xQueryInterrupt( void ) /* 查詢CH375中斷并更新中斷狀態(tài) */ { while ( CH375_INT_WIRE ); /* 如果CH375的中斷引腳輸出高電平則等待 */ CH375_CMD_PORT = CMD_GET_STATUS; /* 獲取當前中斷狀態(tài) */ CH375IntStatus &= 0x80; if ( CH375IntStatus ) CH375IntStatus = 0; /* 操作無意義,用于至少延時2uS */ CH375IntStatus = CH375_DAT_PORT; /* 獲取中斷狀態(tài) */ if ( CH375IntStatus == USB_INT_DISCONNECT ) CH375DiskStatus = DISK_DISCONNECT; /* 檢測到USB設(shè)備斷開事件 */ else if ( CH375IntStatus == USB_INT_CONNECT ) CH375DiskStatus = DISK_CONNECT; /* 檢測到USB設(shè)備連接事件 */ else if ( CH375IntStatus == 0X14 ) CH375DiskStatus = 0XI4; }
程序就很快運行走了;不過返回的i值是0XB3;沒有找到文件; 我有點糊涂了; 麻煩大哥們幫我看一下;我C語言不太好。謝謝大家了;