没有用过MSCOMM,听说还要做好串口线连接,是不是啊?下面的代码行不通啊

pcwak 2003-12-19 03:06:59
Private Sub Command1_Click()
MSComm1.CommPort = 1
MSComm1.Settings = 9600
MSComm1.PortOpen = True
MSComm1.Output = "ABCD"
Text1.Text = MSComm1.Input
MSComm1.PortOpen = False
End Sub
...全文
12 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
maskzha 2003-12-19
通信代码我就不写了。上面的就够了。
串口2脚用于接收,3脚用于发送。5脚为公共地。其他的可以不管。
要两个串口通信的话。连接线2、3口要互换。即2脚接另一头的3脚。5脚不变。
脚的编号在串口头子上有标的。
串口设置这段代码要注意了。
Private Sub SetMSComm()
With MSC
.CommPort = 1 '设置Com1为通信端口
.Settings = "9600,E,7,2" '设置通信端口参数 9600赫兹、偶校验、7个数据位、1个停止位
.InBufferSize = 40 '设置缓冲区接收数据为40字节
.InputLen = 1 '设置Input一次从接收缓冲读取字节数为1
.RThreshold = 1 '设置接收一个字节就产生OnComm事件
.InputMode = comInputModeBinary '设置数据接收模式为二进制形式
End With
End Sub

端口、波特率、奇偶位、校验位、数据位、停止位、要一样。
回复
pcwak 2003-12-19
我自己UP
回复
coolice823 2003-12-19
读取的数据与发送的数据与相关硬件有协议的
回复
逍遥鹰王 2003-12-19
上面得代码为读取传入数据得代码。
读取方式根据要读取得电子设备的不同稍有区别,得看说明书。
回复
逍遥鹰王 2003-12-19
'设置初始化MSComm端口
Private Sub SetMSComm()
With MSC
.CommPort = 1 '设置Com1为通信端口
.Settings = "9600,E,7,2" '设置通信端口参数 9600赫兹、偶校验、7个数据位、1个停止位
.InBufferSize = 40 '设置缓冲区接收数据为40字节
.InputLen = 1 '设置Input一次从接收缓冲读取字节数为1
.RThreshold = 1 '设置接收一个字节就产生OnComm事件
.InputMode = comInputModeBinary '设置数据接收模式为二进制形式
End With
End Sub

'事件:
Private Sub MSC_OnComm()
Dim i As Long
With MSC
Select Case .CommEvent '判断通信事件
Case comEvReceive: '收到Rthreshold个字节产生的接收事件
SwichVar 1
If Out(1) = 2 Then '判断是否为数据的开始标志
.RThreshold = 0 '关闭OnComm事件接收
End If
Do
DoEvents
Loop Until .InBufferCount >= 3 '循环等待接收缓冲区>=3个字节

For i = 2 To 12
SwichVar i
If Out(i) < 58 And Out(i) > 45 Then
txt_GrossWeight.Text = txt_GrossWeight.Text & Chr(Out(i))
End If
Next
End With
End Sub

'转化ASCII码为计算机的字符
Private Sub SwichVar(ByVal nNum As Long)
var = Null
var = MSC.Input
Out(nNum) = var(0)
End Sub
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告