mscomm控件使用,用计时器循环控制发送同样的数据帧,同样的程序发送的数据帧不同,为什么?
mscomm控件使用,用计时器循环控制发送同样的数据帧,同样的程序发送的数据帧不同,为什么?要疯掉了
我用orgSendData()方法组织数据,最后赋值给全局数组变量arrParameterSend。
用一个计时器控制每0.5秒(或者其他时间间隔)就去调用orgSendData,
然后将执行Me.AxMSComm1.Output = arrParameterSend '将数据帧发给串口控件发送缓存区
现在的问题是:
我在计时器timerComSend_Tick事件前加断点,或者在orgSendData方法加断点,单步调试的时候,不管循环几次,串口输出到下位机的数据帧都是相同的
但是我把断点去掉,让程序自己跑的时候,第一次输出的数据帧是正确的,后面循环控制的数据帧会出错。我看过后面发送的数据帧,数据的头、尾数据字节都是正确的,根据自己定义的协议计算的异或位、累计和位也是正确地,但是中间有两位总是变幻出错。——按我的理解程序是根据相同的数据算出的异或和累计和,但是发送给串口缓存,下位机收到的数据帧就变化了,实在想不通是什么原因。单步运行的时候每次发送的数据都是一样的。
哪位大虾帮帮忙