如vb6.0中可以
Private Sub MSComm1_OnComm()         
  dim output(1) as byte
     output(0) =&h10
     output(1) =&h20
        MSComm1.Output = output
End SubPrivate Sub button_Click()
dim secoutput(1) as byte
     secoutput(0) =&h30
     secoutput(1) =&h40
        MSComm1.Output = secOutput
End Sub
这样执行下来,用16进制查看为
10 20 (2)
30 40 (2)以上的功能这么在vb2008中实现呢? 在2008中不知道怎么实现上面的功能,无论怎么做,执行下来为:
10 20 30 40 (4)如何能实现vb6.0那样的功能呢?望指教!

解决方案 »

  1.   

    上面的输出结果打错了。按button执行下来,在接收端16进制查看为
    30 40 (2)
    10 20 (2)以上的功能这么在vb2008中实现呢?  在2008中不知道怎么实现上面的功能,无论怎么做,执行下来为:
    30 40 10 20 (4)
      

  2.   

    1.在.NET中直接引入,可以继续使用MSCOMM.
    2.使用.NET RS232类.
    参考这里: http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx
      

  3.   

    参阅:VB.NET2008的串口工程
      

  4.   

    button_Click与MSComm1_OnComm没有直接关系
    MSComm1_OnComm事件是有数据返回时触发的。无论你用mscomm或SerialPort原理都是一样的,查看它们发送缓冲区大小的不同。两次数据发送要做一定的延时,不然时间过快,当成一次发送的是很正常的。
      

  5.   

    谢谢各位!
    serialport1.Write 发出代码后03 04
    serialport1_DataReceived接收到返回代码后在发送 01 02
    问题解决了,功能是一样的,只是语言表达方式不一样了!