来串口通讯有关问题

来高手指点串口通讯问题
我以timer控件每100ms采集一次plc数据,用按钮发送数据时先停止timer控件 在发送数据  然后启动timer控件     按钮事件结束,
为什么会出错,有时候停止了timer控件就不执行,有时候发送完数据,timer控件不启动
------解决方案--------------------
串口的通讯双方都是主动发送的,为什么要在 PC 端设置 Timer 来“接收”。

你的接收事务也是应答式的吗,即主机发送命令,从机回送应答数据?

你说的“按钮发送数据”是什么意思?

根据猜测,你这样试试:

1 设置一个全局变量 blnStop As Boolean

2 启动Timer 前,设置 blnStop = False

3 在你的 Timer 事件中开头加上:

DeEvents
If blnStop Then
    Timer1.Enabled = False
    Exit Sub
End If

4 当你需要停止 Timer 时,不要对 Timer 直接操作,而是设置 blnStop = True