快晕死了,mscomm的问题。

VHDLcn 2004-10-05 03:39:34
我在超级终端中,输入R; 下位机回送 OK

可是用vb写程序调试时,怎么都没有数据回送!! oncomm事件里没有触发 comEvReceive值。
大侠帮看看,感激不尽!!

程序代码如下:
With MSComm1
.CommPort = 1 '使用COM1
.Settings = "9600,N,8,1" '设置通信口参数
.Handshaking = comNone
.InputMode = comInputModeText
.InBufferSize = 4096
.OutBufferSize = 2048

.SThreshold = 1
.RThreshold = 1
'设置接收一个字节产生OnComm事件

.InBufferCount = 0 '清除接收缓冲区
.OutBufferCount = 0 '清除发送缓冲区

If .PortOpen = False Then
'判断通信口是否打开
.PortOpen = True '打开通信口
If Err Then '错误处理
MsgBox "串口通信无效"
Exit Sub
End If
End If
MSComm1.Output = "R;"
End With
在OnComm事件中,进不了comEvReceive。
Private Sub MSComm1_OnComm()
On Error Resume Next
Select Case MSComm1.CommEvent
Case comEvSend
Debug.Print 1
Case comEvReceive
Debug.Print 2
Case comEvCD
End Select

End Sub
...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
my_wei 2004-10-24
  • 打赏
  • 举报
回复
一段VB代码实现mscomm读取数,转换用DP+spcomm怎么写呀
http://community.csdn.net/Expert/topic/3486/3486032.xml?temp=.5334131
jam021 2004-10-09
  • 打赏
  • 举报
回复
关注,帮你顶!
wangjin801018 2004-10-09
  • 打赏
  • 举报
回复
你这里comm的延时是用什么方法写的?
VHDLcn 2004-10-05
  • 打赏
  • 举报
回复
找到原因了!

原来很多仪器都是: MSComm1.Output="R;" 就可以了。
现在必须这样子:
MSComm1.Output = "R"
Call Delay
MSComm1.Output = ";"
Call Delay

必须在每个字符间加延时!呵呵,可以休息休息了,让做硬件的家伙修正这个问题

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧