逐行调试的时候执行程序,直接运行(不设断点)不执行程序,请高手指点
解决方案 »
- VB 能不能以可读又可写的方式打开文件?
- 创建工具栏时的错误
- 怎样通过VB编程利用后缀名为sql的文件在SQL中创建数据库和数据库里的表!?
- 急急急急急急急急急急急急急急急,VB菜鸟一问,望vb大虾或者vb版的射天狼请给予帮助,急急急急急急急急急急急急急
- 怎样用vb写一个服务程序
- 怎么用VB实现实现简单的聊天功能?点对点的,不通过中间服务器
- 连接dbf数据库的问题:[Microsoft] [ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序
- 急救!!!!!关于报表动态打印的问题
- 怎么读去某一txt file 的数据
- access 的性能是不是不太好,如果记录数达1万左右,是不是速度很慢很慢?
- 如何实现类似于qq或者msn上线提示,在托盘上自动弹出,自动收回,或者淡入淡出效果
- 怎么确认用vb登陆网页是否成功?
Dim out1() As Byte
Dim into1() As Byte
If MSComm1.PortOpen Then
MSComm1.PortOpen = False
End If
MSComm1.PortOpen = TrueMSComm1.Settings = "4800,m,8,1"
MSComm1.SThreshold = 0
MSComm1.RThreshold = 0
'MSComm1.OutBufferCount = 0
'MSComm1.InBufferCount = 0
ReDim out1(0)
out1(0) = &H1
MSComm1.Output = out1
MSComm1.Settings = "4800,S,8,1"
Do Until MSComm1.InBufferCount > 0
DoEvents
Loop '等待应答帧ReDim into1(0)
into1 = MSComm1.Input
'MSComm1.PortOpen = False
''MSComm1.PortOpen = True
ReDim out1(3)
out1(0) = &H1
out1(1) = &H2
out1(2) = &H7
out1(3) = &HF7
'MSComm1.OutBufferCount = 0
'MSComm1.InBufferCount = 0
MSComm1.Output = out1Do Until MSComm1.InBufferCount > 0
DoEvents
Loop '等待应答帧ReDim into1(6)
into1 = MSComm1.Input
当我在开始(if...)打断点,按F8执行(一步一步),没有问题,直接执行完,但不打断点,执行到第一个doevents时就不动了,死循环
windows系统已经在循环等待com中断了,这时候你又继续循环,有可能在串口发生并发,如果系统没处理好就挂了
DoEvents
Loop Until MSComm1.InBufferCount > 0'等待应答帧
请 chewinggum(口香糖·dotnet转型中) 给个思路,谢谢了!
Dim IntStep As Integer
Dim DataIn As String
Dim DataOut As StringPrivate Sub Form_Load()
DataOut = "通讯开始"
MSComm1.Output = DataOut
End SubPrivate Sub MSComm1_OnComm()
into1 = MSComm1.Input
IntStep = IntStep + 1
Select Case IntStep
Case 1
Call Exe(1) '处理第一次应答包
DataOut = "第二批指令"
MSComm1.Output = DataOut
Case 2
Call Exe(2) '处理第二次应答包
DataOut = "第三批指令"
MSComm1.Output = DataOut
Case 3
Call Exe(3) '处理第三次应答包
DataOut = "结束指令"
MSComm1.Output = DataOut
End Select
End Sub
-------------
MSComm1.Output = out1
MSComm1.Settings = "4800,S,8,1"
Do Until MSComm1.InBufferCount > 0
DoEvents
Loop '等待应答帧
----------
改成
-------------------
MSComm1.Output = out1Do Until MSComm1.InBufferCount > 0
DoEvents
Loop '等待应答帧
MSComm1.Settings = "4800,S,8,1"
---------
这样看看
MSComm1.Output = out1
doevents
MSComm1.Settings = "4800,S,8,1"
Do Until MSComm1.InBufferCount > 0
DoEvents
Loop
今天下午我有差了,我怀疑问题出在:
单步执行给了硬件充足的响应时间。而是否没有断点时间太快了而来不及响应,但修改波特率
也不行,看来还得考虑了,谢谢大家。我晚上得回家了有事。有建议明天分享。谢谢光临