[求助]CH375串口方式無法創(chuàng)建文件,讀數(shù)據(jù)錯(cuò)誤(附程序)

MSP430F149單片機(jī),串口方式連接,部分程序如下: #include #include #include #include "uart1.h" #include "uart0.h" #include "TFT.h" #include "hzk.h" #define LIB_CFG_FILE_IO 1 /* 文件讀寫的數(shù)據(jù)的復(fù)制方式,0為"外部子程序",1為"內(nèi)部復(fù)制" */ #define LIB_CFG_INT_EN 0 /* CH375的INT#引腳連接方式,0為"查詢方式",1為"中斷方式" */

/* 單片機(jī)的RAM分配是: 0200H-03FFH為磁盤讀寫緩沖區(qū), 以字節(jié)為單位讀寫文件不需要文件數(shù)據(jù)讀寫緩沖區(qū)FILE_DATA_BUF */ #define DISK_BASE_BUF_ADDR 0x0200 /* 外部RAM的磁盤數(shù)據(jù)緩沖區(qū)的起始地址,從該單元開始的緩沖區(qū)長度為SECTOR_SIZE */ #define FILE_DATA_BUF_ADDR 0xF000 /* 外部RAM的文件數(shù)據(jù)緩沖區(qū)的起始地址,緩沖區(qū)長度不小于一次讀寫的數(shù)據(jù)長度,字節(jié)模式不用該緩沖區(qū) */ /* 單片機(jī)的RAM有限,其中CH375子程序用512字節(jié),即使是具有2K容量RAM的單片機(jī),減去堆棧和變量的占用,緩沖區(qū)最多為1K字節(jié) */ #define FILE_DATA_BUF_LEN 0x0200 /* 外部RAM的文件數(shù)據(jù)緩沖區(qū),緩沖區(qū)長度不小于一次讀寫的數(shù)據(jù)長度,字節(jié)模式不用該緩沖區(qū) */

#define CH375_INT_WIRE ( P2IN & 0x01 ) /* P2.0, CH375的中斷線INT#引腳,連接CH375的INT#引腳,用于查詢中斷狀態(tài) */

#define NO_DEFAULT_CH375_F_ENUM 1 /* 未調(diào)用CH375FileEnumer程序故禁止以節(jié)約代碼 */ #define NO_DEFAULT_CH375_F_QUERY 1 /* 未調(diào)用CH375FileQuery程序故禁止以節(jié)約代碼 */

#pragma language=extended #include "CH375HFF.h" #pragma language=default

/* 本例中的硬件連接方式如下(串口讀寫子程序) */ /* MSP430單片機(jī)的引腳 CH375芯片的引腳 P2.0 INT# P3.6(TXD1) RXD P3.7(RXD1) TXD */

void CH375_PORT_INIT( ) { P2DIR&=BIT0; //設(shè)置INT#為輸入 }

void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫命令 */ { U1TCTL|=TXWAKE; //TXWAKE置1,表示發(fā)送地址,數(shù)據(jù)發(fā)完后自動(dòng)清0 while ( ( IFG2 & UTXIFG1 ) == 0 ); // USART1 TX buffer ready? TXBUF1 = mCmd; // char to TXBUF1 }

void xWriteCH375Data( UINT8 mData ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫數(shù)據(jù) */ { while ( ( IFG2 & UTXIFG1 ) == 0 ); // USART1 TX buffer ready? TXBUF1 = mData; // char to TXBUF1 }

UINT8 xReadCH375Data( void ) /* 外部定義的被CH375程序庫調(diào)用的子程序,從CH375讀數(shù)據(jù) */ { UINT8 mData; while(RxFlag==0); RxFlag=0; mData=RXBUF1; return( mData ); } 問題1:CH375Ready()不成功,例程中說“有的U盤總是返回未準(zhǔn)備好,不過可以被忽略”,屏蔽掉后,可以讀U盤容量且正確,可以查詢根目錄下的文件且正確,可以打開指定文件,但讀出來的數(shù)據(jù)都是C!!! 問題2:CH375FileCreate()不成功,即不能創(chuàng)建文件和寫文件?。?! 補(bǔ)充說明:例程就是所給MSP430單片機(jī)唯一的例程。庫用的FILELIBF_V41文件夾里的 我的USB供電是4.88V,不接U盤時(shí)UD+和UD-都接近0V,接U盤后,UD+3.1V左右,UD-仍接近0V,UD+和UD-沒接反,這是毫無疑問的,因?yàn)榭梢詫盤里根目錄下的文件名都以列表的方式在串口調(diào)試助手上顯示出來,而且U盤的容量也可以讀對(duì),這就表明硬件應(yīng)該是對(duì)的。UploadImages/200942213384294.rar

對(duì)大部分U盤來說CH375Ready()必須要成功,可能是RAM分配出現(xiàn)了問題.測(cè)試命令能否通過?務(wù)必保證通過. 把下面的語句去掉: #define FILE_DATA_BUF_ADDR 0xF000 這是文件緩沖區(qū)地址,你的MCU的RAM是否有這么大的地址?可以先屏蔽掉實(shí)驗(yàn)一下.


測(cè)試命令能通過,就是發(fā)命令0x06,然后發(fā)數(shù)據(jù)0x55,返回0xaa之類的,是不是?。?/p>


你的RAM有這個(gè)地址嗎0xF000?


MSP430F149的單片機(jī),沒注意看,我先去掉看一下,待會(huì)再請(qǐng)教?。≈x謝了!


現(xiàn)在我單步運(yùn)行時(shí)Ready通過了,但讀出來的數(shù)據(jù)還是都是C!而且不單步跟蹤的話,串口上顯示Ready?就卡住了,撥出U盤后連續(xù)5個(gè)Ready?然后DISK SIZE Error 82. 下面是我單步跟蹤Ready時(shí)看到的部分命令,數(shù)據(jù)及返回值: CMD DATA READ_DATA INT 0X22 0X15 0X0A 0X20 0XA1 0X0A 0X1B 0X00 0X22 0X15 0X0A 0X20 0XA1 0X0A 0X1B 0X00 0X51 有應(yīng)答 0x22 0x14 0x0A 0X38 0X00 0X53 有應(yīng)答 0X22 0X14 0X28 0X00 以后就沒繼續(xù)看了,全速運(yùn)行顯示READY通過,但讀U盤里的數(shù)據(jù)全部都是C!


紅桃六大哥,不在嗎?我需要你的幫助!??!


懷疑還是RAM分配這邊有點(diǎn)問題,你把你的程序以附件的形式貼出來看看.要讀的文件里面實(shí)際是什么內(nèi)容?是沒有讀出來還是數(shù)據(jù)錯(cuò)誤這個(gè)一定要分清楚,返回0X82,你測(cè)試一下UD+.UD-有沒有接反,USB口上是否有串接電阻等其他器件.USB口供電要保證是盡量接近5V. 另外你可以測(cè)試一下其他U盤.


我的USB供電是4.88V,不接U盤時(shí)UD+和UD-都接近0V,接U盤后,UD+3.1V左右,UD-仍接近0V,UD+和UD-沒接反,這是毫無疑問的,因?yàn)榭梢詫盤里根目錄下的文件名都以列表的方式在串口調(diào)試助手上顯示出來,而且U盤的容量也可以讀對(duì),這就表明硬件應(yīng)該是對(duì)的。程序見上面附件:UploadImages/200942213384294.rar 怕您沒看見,這里也上傳一次:UploadImages/20094221348780.rar


我想請(qǐng)問下,你的串口發(fā)命令的函數(shù)是不是置一個(gè)1標(biāo)識(shí)發(fā)送的是命令? 幫幫忙,,我也在調(diào)這個(gè),挑不出來急死了!


建議你去下載CH375LIB.ZIP里面MSC51/FILELIB5下面的例子程序


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

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