首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

急问:关于COM接收数据异常有关问题..........

2012-03-31 
急问:关于COM接收数据错误问题.......... 发送文本 :  11111111CR正常ASC值:49494949494949496782接收ASC

急问:关于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

热点排行