关于VB串口接收的乱码问题,用vb接收单片机传来的数据(用unsigned char定义),板的波特率也是9600,求解

Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
MSComm1.RThreshold = 1
End Sub

Private Sub MSComm1_OnComm()
Dim indata As Variant
Select Case MSComm1.CommEvent
Case comEvReceive
indata = MSComm1.Input
MSComm1.InBufferCount = 0
End Select
Text1.Text = indata
End Sub

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Call ReceiveDataFromCom
End Select
End Sub
Sub ReceiveDataFromCom()
Dim ComTemp As Variant
Dim ReadData() As Byte
Dim InbufferCount As Long
Dim i As Integer
Dim Str As String
Str = " "
InbufferCount = MSComm1.InbufferCount
If InbufferCount < MSComm1.InputLen Then
Exit Sub
End If
If InbufferCount > = MSComm1.InputLen Then
ComTemp = MSComm1.Input
ReadData() = ComTemp
For i = LBound(ReadData) To UBound(ReadData)
Str = Str & ChrB(ReadData(i))
Next i
Text1.Text = Str
End If
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-20
楼主 试试 看
MSComm1 有个 属性 InputMode 为 comInputModeBinary

不指定 的 话 就是 comInputModeText 吧追问

试了一下,也不是,似乎VB是以ascII码显示的,有什么方法让它十进制显示

相似回答