|
课题: 利用Excel采集串口数据
串口连线 9P 2 3 5 <--> 25P 3 2 7
设备通过232接口输出字符数据, 串口数据通信协议是:数据传输速率为 4800bps,1位开始位,8位数据位,2位停止位,无奇偶校验位。
必须先在win2k/xp system32下添加MSComm控件 ----- Regsvr32 C:\WINNT\SYSTEM32\MSCOMM32.OCX
通讯程序:
Private Sub CommandButton1_Click()
With MSComm1
If .PortOpen = False Then
.CommPort = 4
.Settings = "4800,N,8,2"
.InBufferSize = 80
.OutBufferSize = 2
.InputMode = comInputModeText
.InputLen = 80
.SThreshold = 1
.InBufferCount = 0
.OutBufferCount = 0
.RThreshold = 1
.PortOpen = True
If Err Then
MsgBox "comm error"
Exit Sub
End If
End If
aa = ""
k = 1
Select Case .CommEvent
Case comEvReceive
aa = cc
av = .Input
cc = aa & av
If av== vbCr Then Sheets("data").Range("a" & k) = cc
k = k + 1
Case Else
End Select
End With
End Sub
目的是把串口采集到数据的送到 "data" 表中处理, 如果通过F8模式运行程序,可以实现数据的采集,但自动运行时出现表中采集不到数据的现象,这时候会有什么问题发生? 如果增加 Msgbox cc 有一个人机交互的过程,也能采集到数据.
* 请问高手能解决这个问题吗? 是否数据处理速度不匹配造成的缓冲区丢失?
[em06][ |
|