对,看一看RS232的标准。你在VB向单片机发信号时,最好发送字节信号(尽量别用字符串做标记),这样在单片机上的程序好写得多。开始和结束标志不要也可以,这样更简单。

解决方案 »

  1.   

    是不是没有接受到数据(mscomm1.input="")?
    1、mscomm1.Rthreshold不能为0
    2、可以用oncomm事件接收数据。
      

  2.   

    记不清楚了,用文本发送方式,数据后面是不是要加vbcrlf
    MSComm1.Output = "88"+vbcrlf
      

  3.   

    你这样直接发送字符串会出问题的。
    最好用字节传。把buffer 定义为byte数组,发送16进制的数据好。
      

  4.   

    Private Sub MSComm1_OnComm()
    dim buffer as variant
    Select Case MSComm1.CommEvent
    Case comEvReceive 
              buffer=mscomm1.input
              text1.text=text1.text & buffer
    End Select
    End Sub
    单片机发送小于80(Ascii码为128)的16进制时,可以显示相应的字符,但如果超过,接收到乱码,我想用16进制接收,比如单片机发送99,我收到99的字符串,该如何转换?
    假如我是用二进制方式接收,那么在缓冲区里的内容是什么(假设发送99,是不是1001 1001?