急問各位高手用CH375做U盤接口所遇到的問題!!

我用CH375做的U盤和單片機(jī)的接口,用的程序是沁恒公司的CH375HF5,卻遇到以下問題 只能使用一個比較老的藍(lán)科的U盤,而對于其他型號的U盤均不能用。 我在調(diào)試程序的時候發(fā)現(xiàn),使用別的U盤時,當(dāng)程序執(zhí)行完 i = CH375FileOpen( ); //打開文件 后, 返回值i就為 ERR_USB_DISK_ERR (0x1F)/* USB存儲器操作失敗,在初始化時可能是USB存儲器不支持,在讀寫操作中可能是磁盤損壞或者已經(jīng)斷開 */, 磁盤及文件狀態(tài) CH375DiskStatus 為DISK_MOUNTED (0x03)/* 磁盤已經(jīng)初始化成功,但是尚未分析文件系統(tǒng)或者文件系統(tǒng)不支持 */ 切此時USB的電源也為接近5V(大概4.9V)。 不知道這是什么原因?qū)е鲁霈F(xiàn)這種情況,請各位高手指教??!

如果返回這樣的錯誤的話,那么,你DISK-READY()這個函數(shù)返回的數(shù)據(jù)是多少呢?


前面執(zhí)行DISKREADY時返回值為0X10(SUCCESS),應(yīng)該沒有問題


CH375DiskReady( )返回的應(yīng)該是0X00(ERR_SUCCESS)吧。你先查一下512字節(jié)的磁盤緩沖區(qū)(DISK_BASE_BUF)定義是否有問題,前面CH375DiskReady( )能過,而OPEN不了的話,很有可能是磁盤緩沖區(qū)上的問題。你可以在打開文件出錯之后,將磁盤緩沖區(qū)中的數(shù)據(jù)貼出來看一下。


對于磁盤緩沖區(qū)(DISK_BASE_BUF)的定義,我是直接用了沁恒公司提供的CH375HF5.H沒有做改動此段程序代碼如下,不知道這樣有沒有問題。我用的不是375的開發(fā)板,用的是PSD3234A的芯片,不知道緩沖區(qū)的數(shù)據(jù)如何查看,謝謝各位指教!

#ifndef DISK_BASE_BUF_ADDR /*#define DISK_BASE_BUF_ADDR 0*/ /* 如果未定義磁盤讀寫的緩沖區(qū)地址,那么假定磁盤讀寫的緩沖區(qū)從地址0開始 */ #endif

#ifdef DISK_BASE_BUF_ADDR UINT8X DISK_BASE_BUF[512] _at_ DISK_BASE_BUF_ADDR; /* 外部RAM的磁盤數(shù)據(jù)緩沖區(qū),緩沖區(qū)長度為一個扇區(qū)的長度 */ #else UINT8X DISK_BASE_BUF[512]; /* 外部RAM的磁盤數(shù)據(jù)緩沖區(qū),緩沖區(qū)長度為一個扇區(qū)的長度 */ #endif


實際上DISK-READY函數(shù)和FILE-OPEN函數(shù)的一個主要的區(qū)別就是使用到了磁盤緩沖區(qū),其他的對于U盤的操作都是一樣的,你可以用操作物理扇區(qū)的例子程序去測試下看可以不可以讀U盤的物理扇區(qū)(下載CH375EVT。ZIP)。


多謝指教!


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

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