在MSComm控件中用二进制方式读取串口,定义byte型数组,然后将Input直接赋给该数组。
With .MSComm1
.CommPort = 1 ‘设置端口号
.Settings = "38400,n,8,1" '打开COM口,并设置其参数
.PortOpen = True
.InputLen = 0
.InputMode = comInputModeBinary
End With然后在MSComm控件的OnComm中:Private Sub MSComm_OnComm
Dim inch() As Tyte
ReDim inch1(MSComm1.InBufferCount)
inch = MSComm1.Input 'inch数组中即为串口中的数据
End Sub
With .MSComm1
.CommPort = 1 ‘设置端口号
.Settings = "38400,n,8,1" '打开COM口,并设置其参数
.PortOpen = True
.InputLen = 0
.InputMode = comInputModeBinary
End With然后在MSComm控件的OnComm中:Private Sub MSComm_OnComm
Dim inch() As Tyte
ReDim inch1(MSComm1.InBufferCount)
inch = MSComm1.Input 'inch数组中即为串口中的数据
End Sub
解决方案 »
- 操盘手股票软件是用什么语言开发的?
- 如何中止一个效长的循环处理过程,只是中止不是强行关闭程序
- 怎么会出现这样的问题?
- VB-Socket的怪问题,高分求助
- 怎么用winsock 传送对象 比如一个记录集等等?
- 求助:将剪贴板上的数据再粘贴到网页上会出现乱码,怎么办?
- 如何做这样一个效果:显示一个没有标题的Form(“正在整理数据...”),整理完了之后,让这个Form消失!
- 请问ADO怎样连接SYBASE SQL ANYWHERE 6.0网络版数据库
- NetBios-SSN[139]端口?
- 求助:怎么使设计的窗口随图片的形状而改变?
- 初级问题?
- 在richtextbox中,如何得到鼠标所在的段、行、句、词的内容?
Dim vReceived As Variant
Dim incmd() As ByteIf MSComm1.CommEvent = comEvReceive Then
buffer = mscomm1.input
end ifincmd = buffer
''' 这里需要对com口返回的数据作处理,因为通常返回的数据根据物理硬件不同而不同,不一定就是只有4个位。'''以下假设返回的只有4位数据,则直接进行与操作
If (buffer And 1) = 1 Then '''十进制数据1对应 0001,对应第一个开关
msgbox "第1个开关打开!"
end if