檢查老長時(shí)間了,就是找不出問題出在哪了,請(qǐng)達(dá)人幫忙分析分析,將非常感激。 這小塊的代碼如下: p = 0x5F; CH375_WR = 0; CH375_CMD_DAT = 0; CH375_WR_DAT_PORT(p); CH375_CMD_DAT = 1; CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); /* 測試CH375是否正常工作 */ p = ~p; /* 返回?cái)?shù)據(jù)應(yīng)該是測試數(shù)據(jù)取反 */ CH375_CMD_DAT = 0; CH375_RD = 0; CH375_WR = 1; RD_Data = CH375_RD_DAT_PORT(); 發(fā)現(xiàn)數(shù)據(jù)讀出后并沒有取反,而接下來的工作都沒法做了。
測試命令不是你這樣發(fā)的,你可以參考下面的一段程序試下: CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); /* 測試CH375是否正常工作 */ CH375_WR_DAT_PORT( 0x55 ); /* 寫入測試數(shù)據(jù) */ i = ~ 0x55; /* 返回?cái)?shù)據(jù)應(yīng)該是測試數(shù)據(jù)取反 */ if ( CH375_RD_DAT_PORT( ) != i ) { /* CH375不正常 */ for ( i=80; i!=0; i-- ) { CH375_WR_CMD_PORT( CMD_RESET_ALL ); /* 多次重復(fù)發(fā)命令,執(zhí)行硬件復(fù)位 */ CH375_RD_DAT_PORT( ); } CH375_WR_CMD_PORT( 0 ); Delay50ms( ); /* 延時(shí)50ms */ } 還有就是你如果測試的數(shù)據(jù)不是你寫進(jìn)去的數(shù)據(jù)的取反,那可能是你的硬件連線或者你的晶振沒起振等硬件問題造成的,而不一定是375壞了
首先謝謝您的回帖! 您提供的這段程序,我曾經(jīng)也是這么寫的,仍然不行,后來我將該部分改來改去,就成了上面我發(fā)的那樣子。 CH375_RD_DAT_PORT( )仍然是輸入的那個(gè)數(shù)。 我仔細(xì)檢查了硬件連接,好像沒發(fā)祥什么問題。
用示波器測了晶振,發(fā)現(xiàn)并不起振,先前我也懷疑可能是晶振出故障了,但后來我換了好幾個(gè)不同廠家的,都檢測不到它起振;然而電壓卻是有的,一個(gè)腳是5V左右,另一個(gè)腳3V左右。
你的退藕電容可能有問題,換2個(gè)退藕電容試下15P的,還有就是你測下RST和RET#的電壓的高低,正常的情況下RST為低,RST#為高
多謝,我去試一下 :)