本人新学VB,现在用VB做一个串口通讯的程序,看了很多关于串口通讯的资料,基本的思路也有,可就是在设计的过程中,遇到了一些麻烦,想请教各位大虾:
用到MSComm控件,首先端口初始化,然后打开端口,端口打开后就可以接受数据了,可如何去接受数据,如何使数据显示在相应的文本框当中,这里就不好怎么实现了,麻烦各位指点迷津或给我个相关的案例代码给我看看,麻烦了!
用到MSComm控件,首先端口初始化,然后打开端口,端口打开后就可以接受数据了,可如何去接受数据,如何使数据显示在相应的文本框当中,这里就不好怎么实现了,麻烦各位指点迷津或给我个相关的案例代码给我看看,麻烦了!
http://www.cndw.com/tech/program/2006051873514.asp
那它是否会出发MSComm1_oncomm事件呢?
MSComm1.RThreshold = 1 '接收区的“门阀值”,0时(默认),不产生OnComm事件;
Option Explicit
Dim strData As StringPrivate Sub Form_Load()
Dim port As Integer
port = 1
MSComm1.CommPort = port 'COM端口
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.RThreshold = 1 '产生MSComm事件
MSComm1.InBufferSize = 1024
MSComm1.PortOpen = True
End SubPrivate Sub MSComm1_OnComm() '接收数据
Dim BytReceived() As Byte
Dim strBuff As String
Select Case MSComm1.CommEvent
Case 2
MSComm1.InputLen = 0
strBuff = MSComm1.Input
BytReceived() = strBuff
Dim i As Integer
For i = 0 To UBound(BytReceived) '接收数据处理为16进制
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & "0" & Hex(BytReceived(i))
Else
strData = strData & Hex(BytReceived(i))
End If
Next
Text1 = strData
'数据处理代码
End Select
我还想问下,我直接转成文本数据,那我在写代码的时候应该如何处理某些情况?
Dim strData As StringPrivate Sub Form_Load()
Dim port As Integer
port = 1
MSComm1.CommPort = port 'COM端口
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeText '按文本接收
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.RThreshold = 1 '产生MSComm事件
MSComm1.InBufferSize = 1024
MSComm1.PortOpen = True
End SubPrivate Sub MSComm1_OnComm() '接收数据
Select Case MSComm1.CommEvent
Case 2
strData = strData & MSComm1.Input
Text1 = strData
'数据处理代码
End Select
End Sub