各位大师,我是刚学的,请教串口发送16进制数据  0D 8A 34  7B  23  0A 如何写VB
我写的如下:Private Sub Command1_Click()
Command1.BackColor = RGB(0, 255, 0) '...按下命令1钮,变绿色Command2.BackColor = vbWhite '...命令2钮,变白色
MSComm1.OutBufferCount = 0 '...清空输出寄存器
MSComm1.Output =                '...是不是在这写入要发送的数据End SubPrivate Sub Command2_Click()
Command2.BackColor = vbRed  '...按下命令2钮,变红色
Command1.BackColor = vbWhite '...命令1钮,变白色End SubPrivate Sub MSComm1_OnComm()
    MSComm1.CommPort = 1    MSComm1.Settings = "9600,n,8,1"    MSComm1.RThreshold = 1    MSComm1.InputMode = comInputModeBinary '设置为2进制接收,是接收&H00 - &HFF必要条件    MSComm1.PortOpen = TrueEnd Sub

解决方案 »

  1.   


        MSComm1.CommPort = 1     MSComm1.Settings = "9600,n,8,1"     MSComm1.RThreshold = 1     MSComm1.InputMode = comInputModeBinary '设置为2进制接收,是接收&H00 - &HFF必要条件     MSComm1.PortOpen = True 
    放的位置是错误的
      

  2.   

    Option Explicit
        Dim sData() As Byte
    Private Sub Command1_Click()
        ReDim sData(3)
        sData(0) = &H12
        sData(1) = &H80
        sData(2) = &H55
        sData(3) = &H32
        MSComm1.OutBufferCount = 0 
        MSComm1.Output = sData     
    End SubPrivate Sub Form_Load()
        MSComm1.CommPort = 1
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.RThreshold = 1
        MSComm1.InputMode = comInputModeBinary '设置为2进制接收,是接收&H00 - &HFF必要条件
        MSComm1.PortOpen = True
    End Sub
      

  3.   

    Private Sub Command1_Click()
    Option Explicit
        Dim sData() As By
        ReDim sData(3)
        sData(0) = &H12
        sData(1) = &H80
        sData(2) = &H55
        sData(3) = &H32
        MSComm1.OutBufferCount = 0
        MSComm1.Output = sData
    Command1.BackColor = RGB(0, 255, 0) '...按下命令1钮,变绿色Command2.BackColor = vbWhite '...命令2钮,变白色
       
    End SubPrivate Sub Command2_Click()
    Command2.BackColor = vbRed  '...按下命令2钮,变红色
    Command1.BackColor = vbWhite '...命令1钮,变白色End SubPrivate Sub Form_Load()
       MSComm1.CommPort = 1
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.RThreshold = 1
        MSComm1.InputMode = comInputModeBinary '设置为2进制接收,是接收&H00 - &HFF必要条件
        MSComm1.PortOpen = True   End Sub
    我这样做了,提示是无效端口,“8002”不知何意,请教!
      

  4.   

    你的硬件端口号可能不是1
    MSComm1.CommPort = 2
    MSComm1.CommPort = 3
    ...
    试试
      

  5.   

    如果我在Command1事件后,接着按Command2,再按Command1,需延时300秒,要如何写?
    谢谢
      

  6.   

    来个串口调试器的源代码,你可借鉴一下:http://download.csdn.net/source/1262066
      

  7.   

    Option Explicit
        Dim sData() As Byte
    Private Sub Command1_Click()
     
        ReDim sData(10)
        sData(0) = &HD
        sData(1) = &H2A
        sData(2) = &H70
        sData(3) = &H6F
        sData(4) = &H77
        sData(5) = &H3D
        sData(6) = &H6F
        sData(7) = &H6E
        sData(8) = &H23
        sData(9) = &HD
        MSComm1.OutBufferCount = 0
        MSComm1.Output = sData
    Command1.BackColor = RGB(0, 255, 0) '...按下命令1钮,变绿色Command2.BackColor = vbWhite '...命令2钮,变白色
       
    End SubPrivate Sub Command2_Click()
    Command2.BackColor = vbRed  '...按下命令2钮,变红色
    Command1.BackColor = vbWhite '...命令1钮,变白色
     ReDim sData(12)
        sData(0) = &HD
        sData(1) = &H2A
        sData(2) = &H73
        sData(3) = &H6F
        sData(4) = &H75
        sData(5) = &H72
        sData(6) = &H3D
        sData(7) = &H52
        sData(8) = &H47
        sData(9) = &H42
        sData(10) = &H23
        sData(11) = &HD
        
        MSComm1.OutBufferCount = 0
        MSComm1.Output = sData
    End SubPrivate Sub Form_Load()
       MSComm1.CommPort = 4
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.RThreshold = 1
        MSComm1.InputMode = comInputModeBinary '设置为2进制接收,是接收&H00 - &HFF必要条件
        MSComm1.PortOpen = True
    End Sub请教,我写的这程序,用另一台PC的串口调试程序接收时,前面10个16进制或12个16进制的数据能读到,但最后都多了个00 即:0D 2A 70 6F 6E 23 0D 00  
      

  8.   


        ReDim sData(0) 
        sData(0) = &HD 
        MSComm1.Output = sData