我用ch372發(fā)送ad轉(zhuǎn)換的數(shù)據(jù),可是接收到的數(shù)據(jù)總是不對。用的是端點(diǎn)2批量發(fā)送的,數(shù)據(jù)包的大小為64,接收時(shí),一個(gè)包內(nèi)的數(shù)據(jù)基本正常,可是包與包之間就不對了,比如前一個(gè)包結(jié)束時(shí)是5,下一個(gè)包開始時(shí)就是-1,只應(yīng)該是6的才對。下面是發(fā)送的程序 void ad_int() interrupt 2 //ad中斷函數(shù),完成接收數(shù)據(jù)和發(fā)送 { uchar dat1=0,dat2=0,dat3=0,temp=0; RD=0; dat3=bz; dat1=P0; temp=P1; RD=1;
dat2=(temp&0xe0)>>5; dat3=dat3<<7; dat2=dat2|dat3; f1=dat1; f2=dat2;
if(flag==1) { CH375_WR_CMD_PORT( CMD_WR_USB_DATA7 ); // 向USB端點(diǎn)2的發(fā)送緩沖區(qū)寫入數(shù)據(jù)塊 delay2us(); CH375_WR_DAT_PORT( 64 ); //首先寫入后續(xù)數(shù)據(jù)長度 flag=0; } CH375_WR_DAT_PORT( f1 ); // 向ch372寫入數(shù)據(jù) delay2us(); CH375_WR_DAT_PORT( f2 ); // 向ch372寫入數(shù)據(jù) i+=2; if(i==64) flag=1; }