Private Sub Command1_Click() Dim a() As Byte ReDim a(8) a(0) = 1 a(1) = 2 a(2) = 3 a(3) = 4 a(4) = 5 a(5) = 6 a(6) = 7 a(7) = 8 ',0x02,0x03,0x04,0x05,0x06,0x07 MSComm1.Output = aEnd SubPrivate Sub Command2_Click() If (MSComm1.PortOpen = True) Then MSComm1.PortOpen = False End IfIf (MSComm1.PortOpen = False) Then MSComm1.PortOpen = True End If End SubPrivate Sub Form_Load()MSComm1.CommPort = 2 MSComm1.InBufferSize = 1024 MSComm1.OutBufferSize = 512 If (MSComm1.PortOpen = False) Then MSComm1.PortOpen = True MSComm1.InputMode = comInputModeBinary End If End SubPrivate Sub MSComm1_OnComm() If MSComm1.CommEvent = 1 Then MsgBox ("hahahaha") End If End Sub 这是上位机的发送程序,下位机用另外一台电脑,用龚建伟写的串口调试程序,一直打开这串口并查看串口数据,这样,当form load的时候就有ff发送过去,有一个button是不停在开关port,它就不停的发送ff,请各位帮忙,把下位机设置为接受16进制数!!!!!!!!!!!!!!!!!!!!!!!!!!请各位帮忙!!!!
可能是因为你 每次都先关闭 再打开 串口 让接收方出现误动作??你再代码里面 Private Sub Command2_Click() ////If (MSComm1.PortOpen = True) Then //MSComm1.PortOpen = False //End If 这个关闭不要就可以了If (MSComm1.PortOpen = False) Then MSComm1.PortOpen = True End If End Sub
分别设置,
mscomm控件实例的settings,comport,等等,即使我什么不设置,然后我将控件的portopen设置为true,,与这台机器相连的另外一台机器上就收到了ff, 就是说当mscomm控件设置portopen为true时,控件本身就发送了一个ff过去,不知道我说明白没有!!!?、
Dim a() As Byte
ReDim a(8)
a(0) = 1
a(1) = 2
a(2) = 3
a(3) = 4
a(4) = 5
a(5) = 6
a(6) = 7
a(7) = 8 ',0x02,0x03,0x04,0x05,0x06,0x07
MSComm1.Output = aEnd SubPrivate Sub Command2_Click()
If (MSComm1.PortOpen = True) Then
MSComm1.PortOpen = False
End IfIf (MSComm1.PortOpen = False) Then
MSComm1.PortOpen = True
End If
End SubPrivate Sub Form_Load()MSComm1.CommPort = 2
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 512
If (MSComm1.PortOpen = False) Then
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
End If
End SubPrivate Sub MSComm1_OnComm()
If MSComm1.CommEvent = 1 Then
MsgBox ("hahahaha")
End If
End Sub
这是上位机的发送程序,下位机用另外一台电脑,用龚建伟写的串口调试程序,一直打开这串口并查看串口数据,这样,当form load的时候就有ff发送过去,有一个button是不停在开关port,它就不停的发送ff,请各位帮忙,把下位机设置为接受16进制数!!!!!!!!!!!!!!!!!!!!!!!!!!请各位帮忙!!!!
调试的时候,当form_load事件触发时它就发送了ff,然后如果我click command1,则下位机会收到数组a,command2只是为了证实当打开串口时有ff发送过去,没有别的用啊
调试的时候,当form_load事件触发时它就发送了ff,然后如果我click command1,则下位机会收到数组a,command2只是为了证实当打开串口时有ff发送过去,没有别的用啊
Private Sub Command2_Click()
////If (MSComm1.PortOpen = True) Then
//MSComm1.PortOpen = False
//End If 这个关闭不要就可以了If (MSComm1.PortOpen = False) Then
MSComm1.PortOpen = True
End If
End Sub
If (MSComm1.PortOpen = False) Then
MSComm1.PortOpen = True
End If就写这个就可以了 !!
但是你 form_unload 里面关闭 串口
当MSComm1.PortOpen = False的情况下,如果我MSComm1.PortOpen=true ,则不可避免要发送ff吗!?
例如:需要将数据 1.11
转换成 (3F 8E 14 7B) 字符串的形式发给下位
另外,如何将下位传给我的字符串(3F 8E 14 7B)
转换成浮点数 1.11
请各位高手给看看,谢谢
当MSComm1.PortOpen = False的情况下,如果我MSComm1.PortOpen=true ,则不可避免要发送ff吗!?楼主我不是这个意思 是
由 ture变成false再变为ture的时候 可能因为 串口上面由些电平的变化(我也是估计的)引起错误!
因为由你的代码看来 要是formload 或 按command2 前串口已经打开的话你就会做这样的动作:ture变成false再变为ture。