在MSComm控件中用二进制方式读取串口,定义byte型数组,然后将Input直接赋给该数组。
With .MSComm1
.CommPort = 1 ‘设置端口号
.Settings = "38400,n,8,1" '打开COM口,并设置其参数
.PortOpen = True
.InputLen = 0
.InputMode = comInputModeBinary
End With
Private Sub MSComm_OnComm
Dim inch() As Tyte
ReDim inch1(MSComm(0).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
Private Sub MSComm_OnComm
Dim inch() As Tyte
ReDim inch1(MSComm(0).InBufferCount)
inch = MSComm1.Input 'inch数组中即为串口中的数据
End Sub
解决方案 »
- 如何用webbrower空间读gmail的邮箱的邮件的内容?谢谢
- 读取文本有个问题。请高手指教
- 打印:当我点打印时候,就把本地机器上EXCEL的打印预览调出来了,而且把数据也显示到里面了,怎么实现?
- 请大家帮我看看为什么不能显示????????
- vb如何得到for循环中数组的差额?
- 我用什么控件可以同时得到多列的标号,和得到用户共输入了几个标号.谢谢
- 向各位大仙请教关于注册表读取函数RegOpenKeyEx的使用方法,多谢各位
- 请问学什么语言能实现这个功啊? 谢谢!
- 在VB中可以象MSDOS状态下哪样,Ping一个IP地址吗?
- 如何获取带java程序的网站上的内容
- VB难点你知道吗?
- 想考研,求一个象CSDN一样的考验论坛,特别是数学
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
虽然里面还有点错误,但我还看得懂:)
还有一点不大明白,我的程序部分如下:MSComm1.RThreshold = 64 '接收64字节发生OnComm事件
我想让他一次只接收64字节,然后要处理的.
如果1
Dim binBuf(63) As Byte
为什么就错误提示,不能给数组属值
如果2
Dim binBuf() As Byte
就可以了,不用上面的ReDim重新定义数组的大小--
ReDim inch1(MSComm1.InBufferCount)?????