
VB6.0MsComm控件可以利用OnComm事件连续获取来自外设发送的信号。
基于:
1)MsComm控件差橘陪的RThreshold 属性不为0和恰当虚蠢的接收代码。
2)使用电脑主板物理COM口或PCI多串口卡上的COM口COM,这样的COM口伍喊是全双工的,发送与接收不会冲突。
3)高质量的接收代码和符合通信协议和数据帧规约的接收处理代码。
实例代码:
Private Sub Form_Load()MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.RThreshold = 1 '产生MSComm事件
MSComm1.InBufferSize = 1024
TxtSend = ""
TxtSend = ""
txtReceive = ""
Text2 = ""
End Sub
Private Sub MSComm1_OnComm() '接收数据
Dim strBuff As String
Select Case MSComm1.CommEvent
Case 2
MSComm1.InputLen = 0
strBuff = MSComm1.Input
BytReceived() = strBuff
jieshou
lenInput = Len(strData)
Text2 = lenInput \ 2
'数据处理代码
End Select
End Sub
Public Function jieshou() '接收数据处理为16进制
Dim i As Integer
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & "0" & Hex(BytReceived(i))
Else
strData = strData & Hex(BytReceived(i))
End If
Next
txtReceive = strData
End Function
Option Explicit'强制变量声明Private Sub Command1_Click() '发送
Dim number As Integer'定义整型
Dim outbyte(0) As Byte '定义字节数组
number = Val(Text1.Text)'转为数值型
outbyte(0) = CByte(number) '转化为慧迟字节型
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.Output = outbyte '发送
End Sub'结束
Private Sub Command2_Click()'按钮单击事件
MSComm1.PortOpen = False'关闭串口
Unload Form1'卸载form1
End Sub
Private Sub Form_Load()'窗体载入事件
MSComm1.CommPort = 1 '设置串口为com1
MSComm1.Settings = "9600,n,8,1" '通讯参数 波特率 奇偶校验 数据位 停止位
MSComm1.InputMode = comInputModeBinary '二进制接收
MSComm1.PortOpen = True '打开串口
MSComm1.InBufferCount = 0 '清空接收缓冲区
MSComm1.RThreshold = 1 '缓冲区中接收到一个字符,就产生一次OnComm事件
End Sub
Private Sub MSComm1_OnComm() '有数据传送时触发
Dim indata As Variant'定义变量
Dim arr(0) As Byte'定义字节数组
Select Case MSComm1.CommEvent ''CommEvent属性:返回最近的通讯事件或错误。通过对它具体属性茄碧衫值的查询,我们就可以获得通讯事件和通 讯错误的完整信息。当其值是comEvReceive时表示接收到数据。
Case comEvReceive '有接收事件
indata = MSComm1.Input '接收到的数据存放到indata里
arr(0) = AscB(indata) '返回indata的值
Text2.Text = arr(0)'在text2中显示数据
MSComm1.InBufferCount = 0' 清空接收缓冲区
End Select
End Sub
在窗体中添加颤腔
text1显示发送数据,
text2显示接收数据,
command1发送按钮,
mscomm1通讯控件,
该看懂了吧,再看不懂我没办法了,
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)