我现在利用CVI写一个运行再PC上的通信程序与列车网关通过串口进行通信.网关每隔0.08秒发送一个180字节的数据,PC程序在收到数据后,判断标志位(第一位为0x22,第二位为0x55,第179位位0x77,第180位为校检和位)是否正确,正确则保存在180字节的数组Gnetrecbuf中,并利用OpenComConfig函数至校检位为3(标志校检),并发送地址数据0x22,再利用OpenComConfig函数至校检位为4(空校检),并发送50字节的消息数据给网关.事件是通过调用InstallComCallback函数每接受到180个字节后就触发.
现在就是如果只接受数据,PC机能够正确接受,但如果接受数据并判断180个字节的正确性后,发送地址数据和消息数据,接受就会发生错误,因为OpenComconfig函数每调用一次,就要关闭一次串口,再重新打开,导致串口接受混乱了,请问大家有没有不关闭串口而改变校检属性的函数.还有就是通信的时候,控制面板会死掉,反映迟钝,利用多线程还是存在这样的问题.
[ 本帖最后由 shanphill 于 2007-9-26 22:57 编辑 ] |