当inputbufffer设置为多个字节比如30的时候
系统会自动把接收的数据一次放入缓冲区吗?
如何正确读取缓冲区中的数据?
系统会自动把接收的数据一次放入缓冲区吗?
如何正确读取缓冲区中的数据?
解决方案 »
- 如何使用MSCOMM接收不定长的数据包,例所要接收的数据包为:AA 00 01 02 00 01 0A
- 帮助解决以下 WritePrivateProfileString& 的问题
- 托盘图标消失的问题,高分跪求标准答案!
- vb如何打印出不规则的表格。
- 这里人比较多,请求紧急杀毒。。。
- 编辑表格中的数据遇到一个问题!
- 紧急!!!!!!!!!!!在VB中打开一个数据库后,如何获得该数据库中所有的表的名字??-------------------是来帮帮我???????????
- 老师要砍我
- 有关wise installmaster的问题
- VB高手中有没有VFOXPRO高手?
- 求两个函数
- VB登陆界面与SQL表的连接代码怎么写啊
InBufferSize——是指整个接收缓冲区的大小;
InBufferCount——是指已接收并在接收缓冲区等待被取走的字符数;2、要接收信息,除了要设置好CommPort、Settings、PortOpen的值外,还要注意:
InputLen——从接收缓冲区读取的字符数;
InputMode——设置取回的格式是字符串或是二进制数据;
Rthreshold——指出收到多少个字符后,引起OnComm 事件。
1、PC是逐个位接收,拚成字符后把它放到接收缓冲区。
InBufferSize——是指整个接收缓冲区的大小;
InBufferCount——是指已接收并在接收缓冲区等待被取走的字符数;2、要接收信息,除了要设置好CommPort、Settings、PortOpen的值外,还要注意:
InputLen——从接收缓冲区读取的字符数;
InputMode——设置取回的格式是字符串或是二进制数据;
Rthreshold——指出收到多少个字符后,引起OnComm 事件。
你要把数组定义为byte
pc窜口本来就是一个一个字节得发得,同一时间不可能发2个字节
Private Sub CmdExit_Click()
Unload Me
End SubPrivate Sub CmdSend_Click()
'...发送 Dim i As Integer
Dim start_data(0) As Byte
Dim data(4) As Byte
Dim data1(0) As Byte
Dim data2(0) As Byte
Dim data3(0) As Byte
Dim data4(0) As Byte
Dim end_data(0) As Byte
Dim pf_send(0) As Byte pf_send(0) = 0
start_data(0) = &HAA
For i = 0 To 3
data(i) = CVar(CBCD(CByte(TxtNum(i).Text)))
pf_send(0) = pf_send(0) Xor data(i)
Next i
end_data(0) = &H55
pf_send(0) = pf_send(0) Xor end_data(0)
data1(0) = data(0)
data2(0) = data(1)
data3(0) = data(2)
data4(0) = data(3)
MSComm1.CommPort = 2
MSComm1.PortOpen = True
MSComm1.OutBufferCount = 0
MSComm1.Output = start_data '发送数据
MSComm1.Output = data1
MSComm1.Output = data2
MSComm1.Output = data3
MSComm1.Output = data4
MSComm1.Output = end_data
MSComm1.Output = pf_sendEnd SubPrivate Sub Form_Load()
MSComm1.Settings = "9600,n,8,1" End SubPrivate Sub MSComm1_OnComm() Dim indata As Variant
Dim bte(0) As Byte Select Case MSComm1.CommEvent
Case comEvReceive
MSComm1.RThreshold = 0
indata = MSComm1.Input '接受下位机的应答信号
MSComm1.InBufferCount = 0
bte(0) = AscB(indata)
If bte(0) = &H0 Then '如果确认成功,启动timer,等待下位机完成34字节数据发送
Timer1.Enabled = True
End If
End SelectEnd SubPrivate Sub Timer1_Timer()
Dim pf As Byte
Dim indata() As Byte
Dim bte(34) As Byte
Dim i As Integer
Timer1.Enabled = False
pf = 0
indata = MSComm1.Input '接受34字节数据
For i = 0 To 33
bte(i) = CB(indata(i))
pf = pf Xor bte(i)
Next
MSComm1.OutBufferCount = 0
'If pf = bte(33) Then
' MSComm1.Output = &H0
' For i = 0 To 3
' TxtNum(i).Text = CB(bte(i + 3))
' Next
'Else '...D£?é′í?ó
' MSComm1.Output = &HFF
' MSComm1.InBufferCount = 0
' Timer1.Enabled = True
'End IfEnd Sub
这个答应得信号 和下位机发送的34位信息在同一帧 还是怎么样的