问题如下:
用串口连续接收数据,然后写到文件中,为何每次只写进去一个,而不是一整串得。
程序如下:
'接收事件
Private Sub MSComm1_OnComm()'*************接收数据***********************
'通讯事件发生
Dim indata(1) As Single
Dim bytInput() As Byte
Dim intInputLen As Integer
Dim i As Integer
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
'此处添加处理接收的代码
MSComm1.InputMode = comInputModeBinary '二进制接收
intInputLen = MSComm1.InBufferCount
ReDim bytInput(intInputLen)
bytInput = MSComm1.Input
For i = 0 To UBound(bytInput)
If COM_Flag = False Then '如果当前没有正在处理的通信,则可进行命令的接收
Receive_Data(DataCount) = bytInput(i) '//存放命令字节
If Receive_Data(DataCount) <> 0 Then '表示为 收状态 长命令且还没有收完
DataCount = DataCount + 1
Else
DataCount = 0 '计数复位
COM_Flag = True '命令接收完成
End If
End If Next
End Select
'******************处理数据***********************If COM_Flag = True Then '收到命令
indata(0) = 1000000 / ((Receive_Data(0) + Receive_Data(1) * 256) * 3.2)
indata(1) = ((Receive_Data(2) + Receive_Data(3) * 256) * 4.78) / 1024
Open "config.txt" For Append As #1
Print #1, indata(0) & " " & indata(1)
Close #1
Unload Me
End If
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
End Sub
用串口连续接收数据,然后写到文件中,为何每次只写进去一个,而不是一整串得。
程序如下:
'接收事件
Private Sub MSComm1_OnComm()'*************接收数据***********************
'通讯事件发生
Dim indata(1) As Single
Dim bytInput() As Byte
Dim intInputLen As Integer
Dim i As Integer
Select Case MSComm1.CommEvent
Case comEvReceive '...有接受事件发生
'此处添加处理接收的代码
MSComm1.InputMode = comInputModeBinary '二进制接收
intInputLen = MSComm1.InBufferCount
ReDim bytInput(intInputLen)
bytInput = MSComm1.Input
For i = 0 To UBound(bytInput)
If COM_Flag = False Then '如果当前没有正在处理的通信,则可进行命令的接收
Receive_Data(DataCount) = bytInput(i) '//存放命令字节
If Receive_Data(DataCount) <> 0 Then '表示为 收状态 长命令且还没有收完
DataCount = DataCount + 1
Else
DataCount = 0 '计数复位
COM_Flag = True '命令接收完成
End If
End If Next
End Select
'******************处理数据***********************If COM_Flag = True Then '收到命令
indata(0) = 1000000 / ((Receive_Data(0) + Receive_Data(1) * 256) * 3.2)
indata(1) = ((Receive_Data(2) + Receive_Data(3) * 256) * 4.78) / 1024
Open "config.txt" For Append As #1
Print #1, indata(0) & " " & indata(1)
Close #1
Unload Me
End If
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
End Sub
解决方案 »
- 在内存中将BMP文件转换为JPG内存流,怎么用GdipSaveImageToStream函数
- vb调用vc++的dll?????
- 急的快流鼻血了:有关vb错误处理的问题
- 请问有没有办法把Frame控件高成透明的?
- 求救
- 窗口关闭,进程仍旧在运行,如何解决由DoEvents带来的问题
- True DBGrid 8.0能不能设置标头不是3D样式?
- ASP如何访问本地 access 数据库?!!!!!!!!在线等待!!!!!!
- 怎样在代码中动态添加progressbar
- 怎样在vb中通过Data Enviroment连接一个SQL数据库?
- vb.net 如何获取DataTable内存数据表中一某行某列的值
- 关于VB用数组显示数据库数据的问题
Print #1, indata(0) & " " & indata(1) & " ";