用MScomm通訊.通訊方式為二進制方式. 發送text中的字符. 下位机用單片机不做任何數据轉換處理. 用以下程序:
Public outbyte() As Byte
Private Sub Command1_Click(Index As Integer)
   buf = Trim(Text1.text)   
  outbyte = CStr(Chr(buf))
   Form1.MSComm1.Output = outbyte
End Sub
可以將text中的數字轉化位ASCII發送給單片机. 通過仿真知道
發送數据           得到數据
01                  01
09                  09
10                  A
127                7F
128                80
129                00
怎么不能發送超過128的數字? 我想實現這樣的功能﹕在text中輸入00-99. 單片机得到00-99
text輸入AA-FF.單片机得到AA-FF.也就是十六進制00-ff怎樣在VB中處理才能使下位机的到相同的數字?

解决方案 »

  1.   

    Public outbyte(0) As BytePrivate Sub Command1_Click()
        Dim buf As String
        buf = Trim(Text1.Text)
        outbyte(0) = CByte(buf)
        Form1.MSComm1.Output = outbyte
    End Sub
      

  2.   

    先謝. 但是還是不行.提示 "形態不符" 然后outbyte(0) = CByte(buf)顯示黃色.
    再想一想.
      

  3.   

    参考:
    http://www.gjwtech.com/scomm/sc2vb6mscomm128chapi.htm
      

  4.   

    試驗了. 無效. 還是不能夠超過128.是不是我的電腦有問題. 并且不能傳字母A-F.
    只能傳輸數字0-128. 
    dim outbyte() as byte
     buf = Trim(Text1.text)
       outbyte = CStr(Asc(buf))
       outbyte = CStr(Chr(buf))  '傳輸數字
       Form1.MSComm1.Output = outbyte
      

  5.   

    outbyte = ChrB(buf)
    搞定啦! 原來要將chr后加個B字.