vb mscomm控件为什么第一次发送只能发送5个字节,stc单片机只能收到2个字节
vbmscomm控件为什么第一次发送只能发送5个字节(A1A1A2A3),stc单片机只能收到2个字节(A1A1),继续发送单片机接收正常!请多多指点!以下是我的程序,可...
vb mscomm控件为什么第一次发送只能发送5个字节(A1 A1 A2 A3 ),stc单片机只能收到2个字节(A1 A1),继续发送单片机接收正常!请多多指点!
以下是我的程序,可是每次按下按键后只发送a(0)字节,为什么,应该如何解决,谢谢~
Private Sub Command1_Click()
MSComm1.PortOpen = False '关闭串口
Unload Form1 '卸载form1
End Sub
Private Sub Command2_Click()
'Timer1.Enabled = True
'i = 0
Dim a() As Byte
ReDim a(3)
a(0) = &HA1
a(1) = &HA1
a(2) = &HA2
a(3) = &HA3
MSComm1.Output = a
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 1 '设置串口为com1
MSComm1.Settings = "9600,n,8,1" '通讯参数 波特率 奇偶校验 数据位 停止位
MSComm1.InputMode = comInputModeBinary '二进制接收
MSComm1.PortOpen = True '打开串口
MSComm1.InBufferCount = 0 '清空接收缓冲区
MSComm1.RThreshold = 1 '缓冲区中接收到一个字符,就产生一次OnComm事件
End Sub
Private Sub MSComm1_OnComm()
Dim indata As Variant '定义变量
Dim arr() As Byte '定义字节数组
Dim i As Integer
Select Case MSComm1.CommEvent ''CommEvent属性:返回最近的通讯事件或错误。通过对它具体属性值的查询,我们就可以获得通讯事件和通 讯错误的完整信息。当其值是comEvReceive时表示接收到数据。
Case comEvReceive '有接收事件
indata = MSComm1.Input '接收到的数据存放到indata里
arr = indata '返回indata的值
For i = 0 To UBound(arr)
If Len(Hex(arr(i))) = 1 Then
Text2.Text = Text2.Text & "0" & Hex(arr(i)) '在text2中显示数据
Else
Text2.Text = Text2.Text & Hex(arr(i)) '在text2中显示数据
End If
Next
MSComm1.InBufferCount = 0 ' 清空接收缓冲区
End Select
End Sub
上述内容中《以下是我的程序,可是每次按下按键后只发送a(0)字节,为什么,》请删除 展开
以下是我的程序,可是每次按下按键后只发送a(0)字节,为什么,应该如何解决,谢谢~
Private Sub Command1_Click()
MSComm1.PortOpen = False '关闭串口
Unload Form1 '卸载form1
End Sub
Private Sub Command2_Click()
'Timer1.Enabled = True
'i = 0
Dim a() As Byte
ReDim a(3)
a(0) = &HA1
a(1) = &HA1
a(2) = &HA2
a(3) = &HA3
MSComm1.Output = a
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 1 '设置串口为com1
MSComm1.Settings = "9600,n,8,1" '通讯参数 波特率 奇偶校验 数据位 停止位
MSComm1.InputMode = comInputModeBinary '二进制接收
MSComm1.PortOpen = True '打开串口
MSComm1.InBufferCount = 0 '清空接收缓冲区
MSComm1.RThreshold = 1 '缓冲区中接收到一个字符,就产生一次OnComm事件
End Sub
Private Sub MSComm1_OnComm()
Dim indata As Variant '定义变量
Dim arr() As Byte '定义字节数组
Dim i As Integer
Select Case MSComm1.CommEvent ''CommEvent属性:返回最近的通讯事件或错误。通过对它具体属性值的查询,我们就可以获得通讯事件和通 讯错误的完整信息。当其值是comEvReceive时表示接收到数据。
Case comEvReceive '有接收事件
indata = MSComm1.Input '接收到的数据存放到indata里
arr = indata '返回indata的值
For i = 0 To UBound(arr)
If Len(Hex(arr(i))) = 1 Then
Text2.Text = Text2.Text & "0" & Hex(arr(i)) '在text2中显示数据
Else
Text2.Text = Text2.Text & Hex(arr(i)) '在text2中显示数据
End If
Next
MSComm1.InBufferCount = 0 ' 清空接收缓冲区
End Select
End Sub
上述内容中《以下是我的程序,可是每次按下按键后只发送a(0)字节,为什么,》请删除 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询