我做过 Dim aInitStr(0) As Byte aInitStr(0) = &HD MSComm1.InputLen = 0 MSComm1.OutBufferCount = 0 MSComm1.Output = aInitStr Do While MSComm1.OutBufferCount <> 0 DoEvents Loop
Dim TransmitDate As String Dim TransmitBuffer() As ByteTransmitBuffer()='''初始化发送字串 TransmitDate =TransmitBuffer() com.output=TransmitDate '''''注意,此时文件是作为二进制发出的接受时,应设置com.InputMode = comInputModeBinary'''二进制fangshi Dim ReceiveBuffer As String ReceiveBuffer = com.Input '显示接收数据 Dim ReceiveData As String If LenB(ReceiveBuffer) > 0 Then For I = 1 To LenB(ReceiveBuffer) ReceiveData = ReceiveData + IIf(Len(Hex(AscB(MidB(ReceiveBuffer, I, 1)))) = 1, "0" + Hex(AscB(MidB(ReceiveBuffer, I, 1))), Hex(AscB(MidB(ReceiveBuffer, I, 1)))) Next I End If
Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent Case comEvReceive Dim Buffer As Variant Dim rd() As Byte Dim nn,si As Integer MSComm1.InputMode = comInputModeBinary nn = MSComm1.InBufferCount '串口等待读取的数的个数 MSComm1.InputLen = 1 '每次只读一个数 For si = 1 To nn Buffer = MSComm1.Input rd = Buffer '每次都是rd(0) Label1.Caption = rd(0) next end select end sub
Dim aInitStr(0) As Byte
aInitStr(0) = &HD
MSComm1.InputLen = 0
MSComm1.OutBufferCount = 0
MSComm1.Output = aInitStr
Do While MSComm1.OutBufferCount <> 0
DoEvents
Loop
Dim TransmitBuffer() As ByteTransmitBuffer()='''初始化发送字串
TransmitDate =TransmitBuffer()
com.output=TransmitDate '''''注意,此时文件是作为二进制发出的接受时,应设置com.InputMode = comInputModeBinary'''二进制fangshi Dim ReceiveBuffer As String
ReceiveBuffer = com.Input
'显示接收数据
Dim ReceiveData As String
If LenB(ReceiveBuffer) > 0 Then
For I = 1 To LenB(ReceiveBuffer)
ReceiveData = ReceiveData + IIf(Len(Hex(AscB(MidB(ReceiveBuffer, I, 1)))) = 1, "0" + Hex(AscB(MidB(ReceiveBuffer, I, 1))), Hex(AscB(MidB(ReceiveBuffer, I, 1))))
Next I
End If
两个朋友可以说的明白一点吗!
我是直接在ONCOMM事件里的!
想在那里直接写入文件!
结果出错1
用按钮接收的时候可以的!INPUTLEN =1
就是需要一个字节的接收然后 写入文件!
能不能写在ONCOMM的事件里面!
谢谢!
Select Case MSComm1.CommEvent
Case comEvReceive
Dim Buffer As Variant
Dim rd() As Byte
Dim nn,si As Integer
MSComm1.InputMode = comInputModeBinary
nn = MSComm1.InBufferCount '串口等待读取的数的个数
MSComm1.InputLen = 1 '每次只读一个数
For si = 1 To nn
Buffer = MSComm1.Input
rd = Buffer '每次都是rd(0)
Label1.Caption = rd(0)
next
end select
end sub
但是这样传送的文件只能在4817字节一下的!
大的文件不能传送!怎么办呢?