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