CH375V DISK_INIT初始化命令失敗

char Write_Ord(char i) { int dat; int j; j = 0; if(i != 0x22) { while((IO0PIN&USB_INT)==0) { j++; if(j>300000) return 1; } }

LoopNop(USBdelay); //延時(shí)3us IO1SET = USB_A0; Loop(USBdelay);

IO0DIR = IO0DIR|0x0003fc00; Loop(5); //延時(shí)150ns dat = i<<10; Loop(5); IO0CLR = 0x0003fc00; Loop(5); IO0SET = dat&0x0003fc00; Loop(5); IO1CLR = DATA_WR; Loop(10); IO1SET = DATA_WR; Loop(5); IO0DIR = IO0DIR&(~0x0003fc00); Loop(5); if(i!=0x22) LoopNop(USBdelay); return 0; }

char ReadUSBData(void) { char i; LoopNop(USBdelay); IO1CLR = USB_A0; IO1CLR = DATA_RD; Loop(10); IO1SET = DATA_RD; i = ( IO0PIN >> 10 ) & 0xff; LoopNop(USBdelay); return i; }

void WriteUSBData(char i) { int dat; LoopNop(USBdelay); IO0DIR = IO0DIR|0x0003fc00; Loop(5); dat = i<<10; Loop(5); IO0CLR = 0x0003fc00; Loop(5); IO0SET = dat&0x0003fc00; Loop(5); IO1CLR = USB_A0; Loop(5); IO1CLR = DATA_WR; Loop(10); IO1SET = DATA_WR; Loop(5); IO0DIR = IO0DIR&(~0x0003fc00); LoopNop(USBdelay);

}


if(i != 0x22) { while((IO0PIN&USB_INT)==0) { j++; if(j>300000) return 1; } } 上面的這段函數(shù)是什么意思?還有就是你用模擬I/O口的時(shí)候要注意時(shí)序,寫數(shù)據(jù)的時(shí)候: write_cmd{ 設(shè)置I/O方向; 將數(shù)據(jù)送到數(shù)據(jù)口 A0=1; WR=0;CS=0; 延時(shí)100NS WR=1;CS=1; A0=0; } 寫數(shù)據(jù) write_dat{ 延時(shí)1US 設(shè)置I/O方向 將數(shù)據(jù)送到數(shù)據(jù)口 A0=0; CS=0;WR=0; 延時(shí)100NS; CS=1;WR=1; } 讀數(shù)據(jù) read_dat{ 延時(shí)1US 并口I/O方向設(shè)為輸入; a0=0;RD=0;cs=0; 延時(shí)100NS; 從并口輸入數(shù)據(jù) CS=1;RD=1 }


讀狀態(tài)后INT為低,我就在發(fā)命令這前判斷INT的狀態(tài),為低的話就返回一個(gè)錯(cuò)誤,以便觀察。奇怪的是有時(shí)正常,有時(shí)不行。 謝謝你的幫助,我先按照你的方法試試看。


hcn,謝謝你的指點(diǎn)。問題已經(jīng)解決,375芯片有問題,換了一個(gè)搞定。


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

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