< >我在做串口通讯,自发自收一个程序,程序编译通过没有问题,并已将25针的串口2和3角用导线短接(还要不要其它的处理),但是接收不到数据,发送程序如下:</P>
< ><FONT size=2>static float b[48]; /*要发送的实型数组*/ <BR>int CVICALLBACK Send (int panel, int control, int event,<BR> void *callbackData, int eventData1, int eventData2)<BR>{ char c[48][9]; <BR> char com[10]={"COM1"};<BR> char *buf; <BR> int size,j,k,n=0;<BR> int status;<BR> switch (event)<BR> {<BR> case EVENT_COMMIT:<BR> buf=malloc(1000) ;<BR> for(j=0;j<=47;j++)<BR> b[j]=2; /*给数组变量赋值*/ <BR> for(j=0;j<=47;j++)<BR> sprintf(c[j],"%6.2f",b[j]); /*将实型数据转化为字符型数据*/<BR> for(j=0;j<=47;j++) <BR> { for(k=0;k<=8;k++)<BR> buf[n]=c[j][k],n++;} /*将二维字符数组转化为一维 */<BR> size=strlen(buf);<BR> status=OpenComConfig( 1,com,9600,0,8,1,1000,1000);/*发送*/<BR> if(status!=0)<BR> {MessagePopup("Error","config failed!");<BR> return 0;}<BR> SetCTSMode(1,LWRS_HWHANDSHAKE_OFF);<BR> FlushOutQ(1); <BR> FlushInQ(1); <BR> status=ComWrt(1,buf,size); <BR> if( status!=size)<BR> MessagePopup("Error","send data failed!");</FONT></P>
< ><FONT size=2> while(1)<BR> { size=GetOutQLen(1);<BR> if(size==0)<BR> break;}<BR> CloseCom(1);<BR> QuitUserInterface(0); <BR> break;<BR> }<BR> return 0;<BR>}<BR></FONT><FONT size=3>接收如下:</FONT></P>
<P><FONT size=2>static float e[48];<BR>int CVICALLBACK Start (int panel, int control, int event,<BR> void *callbackData, int eventData1, int eventData2)<BR>{ <BR> char com[10]={"COM1" };<BR> char cuf[1000];<BR> char buf[10];<BR> int j,k,n=0;<BR> int size;<BR> int status;<BR> <BR> switch (event)<BR> {<BR> case EVENT_COMMIT:<BR> <BR> status=OpenComConfig(1,com,9600,0,8,1,1000,1000);<BR> if(status!=0)<BR> {MessagePopup("Error","config failed!");<BR> return 0;} /*打开串口*/<BR> SetCTSMode(1,LWRS_HWHANDSHAKE_OFF);<BR> size=GetInQLen(1);<BR> status=ComRd(1,cuf,size); /*读取串口字符数据*/ <BR> if( status!=size)<BR> MessagePopup("Error","send data failed!");<BR> CloseCom(1); <BR> <BR> for(j=0;j<=47;j++) /*将字符串数据转化为实型数据*/<BR> {for(k=0;k<=8;k++)<BR> d[k]=cuf[n],n++;<BR> e[j]=atof(d);} </FONT></P>
<P><FONT size=2>不知哪位高手可以指点一下,我为什么收不到数据. </FONT></P> |