我用ch372发送ad转换的数据,可是接收到的数据总是不对。用的是端点2批量发送的,数据包的大小为64,接收时,一个包内的数据基本正常,可是包与包之间就不对了,比如前一个包结束时是5,下一个包开始时就是-1,只应该是6的才对。下面是发送的程序 void ad_int() interrupt 2 //ad中断函数,完成接收数据和发送 { 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端点2的发送缓冲区写入数据块 delay2us(); CH375_WR_DAT_PORT( 64 ); //首先写入后续数据长度 flag=0; } CH375_WR_DAT_PORT( f1 ); // 向ch372写入数据 delay2us(); CH375_WR_DAT_PORT( f2 ); // 向ch372写入数据 i+=2; if(i==64) flag=1; }