| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 629 人关注过本帖
标题:[求助]两台PC间的简易串行通信编程
只看楼主 加入收藏
wzllcxw
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-5
收藏
 问题点数:0 回复次数:1 
[求助]两台PC间的简易串行通信编程

Private Sub Command1_Click()
'...发送数据

MSComm1.OutBufferCount = 0 '...清空输出寄存器

MSComm1.Output = Text1.Text '...发送数据

End Sub

Private Sub Command2_Click()

'...退出

Unload Me

End Sub

Private Sub Form_Load()

'...初始化

MSComm1.CommPort = 1 '...使用Com1口

MSComm1.Settings = "9600,n,8,1" '...设置通讯参数

MSComm1.PortOpen = True '...打开串口

End Sub

Private Sub Mscomm1_Oncomm()

'...通讯事件发生

Select Case MSComm1.CommEvent

Case comEvReceive '...有接受事件发生

Text2.Text = MSComm1.Input '...接受显示数据
MSComm1.InBufferCount = 0 '...清空输入寄存器
End Select

End Sub
以上是小弟用VB编的串行通信程序的源代码,不知道为什么接收不到发送的消息,请各位大虾指点下!着急在线等,谢谢!

搜索更多相关主题的帖子: 串行 通信 
2006-06-05 12:44
it381616212
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-5-15
收藏
得分:0 

接受到的数据不能直接用text显示。你先把接受到的数据放到一个byte数组里,然后在转换成16进制就可以了。
最后再用text显示。

下面是我以前做过的一个小程序,你仔细看一下,应该对你有用的。
Private Declare Sub Sleep Lib "kernel32" (ByVal dvmilliseconds As Long)
Dim InByte() As Byte
Dim Buf As Variant

Private Sub Command1_Click()
MSComm1.PortOpen = True
MSComm1.Output = Text1.Text
Buf = ""
End Sub

Private Sub Form_Load()
Text1.Text = "a123456b"
End Sub

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Sleep (1)
InByte = MSComm1.Input
For i = LBound(InByte) To UBound(InByte)
Buf = Buf + Hex(CStr(InByte(i)))
Next i
Text2.Text = Buf
MSComm1.PortOpen = False

Case comEvSend
MSComm1.Output = Text1.Text
End Select

End Sub


我的邮箱地址是:381616212@ 我的qq:381616212
2006-06-07 11:08
快速回复:[求助]两台PC间的简易串行通信编程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033190 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved