編譯通過,為了確定問題,程序一開始就執(zhí)行這兩句,結(jié)果返回錯誤碼,請教如何解決? ICC是6.31a版本
i = CH375LibInit( ); /* 初始化CH375程序庫和CH375芯片,操作成功返回0 */ mStopIfError( i );
編譯通過,為了確定問題,程序一開始就執(zhí)行這兩句,結(jié)果返回錯誤碼,請教如何解決? ICC是6.31a版本
i = CH375LibInit( ); /* 初始化CH375程序庫和CH375芯片,操作成功返回0 */ mStopIfError( i );
這個應(yīng)該是你的硬件有問題,建議你先做下測試命令,通過命令函數(shù)發(fā)送0X06命令,在通過數(shù)據(jù)函數(shù)發(fā)送0X55的數(shù)據(jù),在通過讀取數(shù)據(jù)函數(shù)讀取數(shù)據(jù),如果硬件正常的話,返回的數(shù)據(jù)應(yīng)該是你輸入數(shù)據(jù)的取反,也就是所謂的0XAA的數(shù)據(jù)。
是這樣寫嗎?
CH375_WR_CMD_PORT(0X06); CH375_WR_DAT_PORT(0X55); i=CH375_RD_DAT_PORT(); printf("i=%02x\n",(unsigned short)i);
打印出來的是i=02x
硬件測試了,晶振工作正常 28,9 腳為3.3v 25 腳 為 0v 26 腳 為 3.3v 2腳 為0v
你不需要用串口輸出來,這個串口輸出有點問題,建議你自己寫一個串口輸出程序 /* 初始化串口 */ void mInitSTDIO( ) { UCSR0B = 0x00; //disable while setting baud rate UCSR0A = 0x00; UCSR0C = 0x06; UBRR0L = 0x33; //set baud rate lo UBRR0H = 0x00; //set baud rate hi UCSR0B = 0x98; } /*串口發(fā)送子函數(shù)*/ void Uart_Send( unsigned char Uart_Data ) { while ( !( UCSR0A & (1< UDR0 = Uart_Data; }
上面的晶振8M,波特率是9600
我也遇到了同樣的問題,我發(fā)送0x55后返回的是255
我也遇到了同樣的問題,我發(fā)送0x55后返回的是225 printf( "Error: %02x\n", iError ); /* 顯示錯誤 */ 改成了下面 printf( "Error: %d\n", iError ); /* 顯示錯誤 */ 則返回Error: 129
不對返回的是255
不同的編譯器對printf使用時不同的,建議先把printf調(diào)通過的,或者自己寫串口調(diào)試程序,單個字節(jié)的發(fā)
返回0XFF你去測下芯片的25腳電壓,正常情況下25腳電壓為低,26腳電壓為高。還有串口通信波特率誤差不要太大。
經(jīng)測試,之前返回255是單片機端口的問題。今天換了下端口,但測試時返回的值等于發(fā)送的值。望高手能分析下。 xWriteCH375Cmd( 0x06 ); xWriteCH375Data( 0x0F ); i= xReadCH375Data(); 返回值15;
10樓的說的電壓是否確認過?還有是否可以講你的xWriteCH375Cmd(),xWriteCH375Data()以及xReadCH375Data()函數(shù)貼出來看下?