来串口通讯有关问题
来高手指点串口通讯问题
我以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
我以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