急问:关于COM接收数据错误问题..........
发送文本 : 11111111CR
正常ASC值:49 49 49 49 49 49 49 49 67 82
接收ASC值:49 49 177 49 177 49 177 49 67 82
当接收时 因为前边的数据都是相同
第三位的数据自动在ASC加了128
为什么啊?......
如果发送文本不是连续相同 那么接收就正常..............
谢谢各位大虾的指点啊~~~~~~~~~~~~~~~~
[解决办法]
楼主能告诉我们, 发送数据的是什么程序? 接收数据的又是什么程序?
如果怀疑串口硬件有问题的话, 用网上现成的串口调试程序来做发送和接收, 这样能保证发送方程序和接收方程序本身没问题。
排除了串口硬件的问题可能性后,再排查发送程序和接收程序是否有问题。
[解决办法]
你接收代码中未见MSCOMM控件属性InputMode的设置,按你代码看应为二进制接收:
Option Explicit
Dim bchar
Dim data
Private Sub Form_Load()
Text1 = " "
MSComm1.CommPort = 1
MSComm1.PortOpen = True
MSComm1.RThreshold = 10
End Sub
Private Sub MSComm1_OnComm()
Dim bBuffer() As Byte
Dim i As Integer
Static checki As Integer
Select Case Me.MSComm1.CommEvent
Case comEvReceive
Me.MSComm1.InputMode = comInputModeBinary '二进制接收
bBuffer = Me.MSComm1.Input
For i = 1 To UBound(bBuffer)
bchar = bBuffer(i)
data = data & CStr(bchar)
Text1.Text = data
Next
End Select
End Sub