(使用mscomm32.ocx)本人将9针com插头的4,6,8脚接到一开关上,然后插入电脑com1口,4脚接的开关公共线,4-6是常断,4-8是常通,在窗口open事件写入如下代码设置电脑的com1口
MSComm.oCommPort=1 '设置
MSComm.Settings="9600,N,8,1"
MSComm.PortOpen=true
MSComm.Rthreshold=1
MSComm.Inputlen=0
MSComm.DTREnable=true
然后在oncomm事件中加入如下代码:
select case mscomm.CommEvent
case comEvCTS '当按下开关后
'*这里是要进行的操作
case comEvDSR '当放开开关后
'#这里不做任何操作
end case
问题:当按下按钮后程序可以检测到comEvCTS,然后进行*行的操作,但是*行的操作会执行很多次才停止,能不能帮我想个办法让*行的程序只执行1次后再等待开关的第二次按下呢?请指导!
MSComm.oCommPort=1 '设置
MSComm.Settings="9600,N,8,1"
MSComm.PortOpen=true
MSComm.Rthreshold=1
MSComm.Inputlen=0
MSComm.DTREnable=true
然后在oncomm事件中加入如下代码:
select case mscomm.CommEvent
case comEvCTS '当按下开关后
'*这里是要进行的操作
case comEvDSR '当放开开关后
'#这里不做任何操作
end case
问题:当按下按钮后程序可以检测到comEvCTS,然后进行*行的操作,但是*行的操作会执行很多次才停止,能不能帮我想个办法让*行的程序只执行1次后再等待开关的第二次按下呢?请指导!
case comEvCTS '当按下开关后
Timer1.Interval = 50 '利用一个50毫秒的定时器来消除开关的抖动
Timer1.Enabled = True '开关的抖动会多次Enable这个定时器
case comEvDSR '当放开开关后
'#这里不做任何操作
end casePrivate Sub Timer1_Timer()
'定时器事件会在抖动消失后50毫秒发生
Timer1.Enabled = False
'*这里是要进行的操作
End Sub