[求助]關(guān)于CH375中斷狀態(tài)

我是用LPC2138與375相連的,寫數(shù)據(jù)和命令均正常,但讀取中斷狀態(tài)總是不正確,狀態(tài)的最高位總是為高,比如測試命令時寫入數(shù)據(jù)0XEE,返回0X91(應(yīng)該為0X11).按照流程我將數(shù)據(jù)按扇區(qū)寫入了U盤,說明寫數(shù)據(jù)和命令是對的,沒有將最高位和電源短接,讀出的狀態(tài)低7位都正確,請問這是什么原因,謝謝.

那肯定是你的位8有問題,至于什么問題,你可以先查下會不會你的硬件上面把位8接到VCC上面或者加了強(qiáng)上拉之類的,其次就去查下你的軟件的配置,在讀數(shù)據(jù)的時候是配置成輸入狀態(tài)嗎?還有就是在我們芯片往最高位送低電平的時候,你拿示波器去看下是不是有低電平出來?


硬件有問題的話,寫命令和數(shù)據(jù)的時候應(yīng)該就不會成功了,軟件的話也應(yīng)該設(shè)置對了,因?yàn)榫筒钸@一位,其他幾位都好的,會不會是芯片壞了.我在LPC2103上做是好的.同樣的流程不同的芯片和處理器,結(jié)果就差讀的時候錯一位.


那么可以肯定軟件上面沒有任何問題,你可以按照我上面說的方法往位8上面送0,你看下可以不可以把數(shù)據(jù)送出去,或者你可以把芯片的位8撬起來看可以不可以拉低電平


貼片焊在板上了,現(xiàn)在也無法撬起來,在上面寫0時可以置低的.下面是我的讀寫子程序:

void USB_WriteCommand(uint8 command) {

mDelay1_2uS( );mDelay1_2uS( ); IO0DIR|=0x00040020; IO0CLR|=OE; IO0SET|=DIR; //設(shè)置245為輸出 IO1CLR|=0x03fc0000; //清并口輸出 IO0SET|=USB_A0; IO1SET|=((uint32)command<<18); IO1DIR|=0x03fc0000;//并口設(shè)置為輸出 IO1DIR|=0x00030000;//RD,WR輸出 IO0DIR|=0x02420010;//控制口為輸出 IO0SET|=ADR2|USB_A0; IO0CLR|=G139|ADR1; IO1SET|=RD; IO1CLR|=WE; //以上寫有效 mDelay1_2uS( );mDelay1_2uS( ); IO0SET|=G139|ADR1|USB_A0; IO1SET|=RD|WE; IO0CLR|=USB_A0; IO1DIR&=0xfc03ffff;//禁止輸出 mDelay1_2uS( );mDelay1_2uS( ); }

void USB_WriteData(uint8 dat) {

mDelay1_2uS( );mDelay1_2uS( ); IO0DIR|=0x00040020; IO0CLR|=OE; IO0SET|=DIR; //設(shè)置245為輸出 IO1CLR|=0x03fc0000; //清并口輸出 IO0SET|=USB_A0; IO1SET|=((uint32)command<<18); IO1DIR|=0x03fc0000;//并口設(shè)置為輸出 IO1DIR|=0x00030000;//RD,WR輸出 IO0DIR|=0x02420010;//控制口為輸出 IO0SET|=ADR2|USB_A0; IO0CLR|=G139|ADR1; IO1SET|=RD; IO1CLR|=WE; //以上寫有效 mDelay1_2uS( );mDelay1_2uS( ); IO0SET|=G139|ADR1|USB_A0; IO1SET|=RD|WE; IO0CLR|=USB_A0; IO1DIR&=0xfc03ffff;//禁止輸出 mDelay1_2uS( );mDelay1_2uS( ); }

uint8 USB_ReadData() { extern uint8 dat; mDelay1_2uS( );mDelay1_2uS( ); IO0DIR|=0x00040020; IO0CLR|= OE|DIR; //設(shè)置245 IO1DIR&=0xfc03ffff;//并口設(shè)置為輸入 IO1DIR|=0x00030000;//RD,WR輸出 IO0DIR|=0x02420010;//控制口為輸出 IO0SET|=ADR2; IO0CLR|=ADR1|G139;//|USB_A0; IO0SET|=USB_A0; IO1SET|=WE; IO1CLR|=RD; mDelay1_2uS( );mDelay1_2uS( ); dat=IO1PIN>>18; IO0SET|=G139|ADR1;//輸出無效信號 //IO0CLR|=USB_A0; IO1SET|=RD|WE; IO0SET |=OE; return (dat); }


我找到原因了 模板不一樣緣故,Thumb2138是可以的 但是ARM2138模板就不可以 不知道為什么


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

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