Vb.net 从SerialPort读取条形码ID时未给出所需结果

Vb.net 从SerialPort读取条形码ID时未给出所需结果,vb.net,windows-ce,barcode,Vb.net,Windows Ce,Barcode,我目前正在为嵌入式WinCE设备开发一个条形码阅读器应用程序,该设备在COM3串行端口中有一个内置条形码扫描仪。我编写了以下代码,以便它在每次扫描条形码时(当COM3接收到数据时)都能检测到 (VS2005:VB.NET for SmartDevice:Windows CE 5.0) 我用定时器显示扫描的ID SyncLock Q While Q.Count > 0 barcodeLbl.Text &= Q.Dequeue End While End

我目前正在为嵌入式WinCE设备开发一个条形码阅读器应用程序,该设备在COM3串行端口中有一个内置条形码扫描仪。我编写了以下代码,以便它在每次扫描条形码时(当COM3接收到数据时)都能检测到

(VS2005:VB.NET for SmartDevice:Windows CE 5.0)

我用定时器显示扫描的ID

SyncLock Q
    While Q.Count > 0
       barcodeLbl.Text &= Q.Dequeue
    End While
End SyncLock
每次我扫描条形码时都会显示ID。那很好。但是,我没有在我的barcodeLbl.Text中获得正确的ID。相反,在上面的代码中,当使用sp1.ReadExisting时,我得到了类似于:“F+I+I~”,当我使用sp1.ReadChar时,得到了一些ASCII数字

以下是我发现的:

F+)i+k~”对应于“9920021101”

F+)i+i~”对应于“9920021102”

F+)i+k~”对应于“9920021103”

F+)i+m~”对应于“9920021104”

(101和103给出相同的结果)


现在我只需要我的SerialPort来给我正确的ID。我已经在这里呆了一天了。如果有人能指出我做错了什么,我会非常感激。提前感谢。

听起来可能是编码问题。条形码扫描设备是什么?不要忽略ErrorReceived事件,它会告诉您存在这样的基本问题。您现在可能会遇到帧错误,接下来您应该尝试波特率属性。@Adrian Hi,这是一个内置的Scantech设备。()-成像扫描仪。但我不明白101和103是如何给出相同的代码的+汉斯帕桑:我没有收到任何错误。帧错误?对不起,你能详细解释一下你的意思吗?谢谢@汉斯帕桑把波特率改为9600行!哇!谢谢你,老兄!如果你把它作为一个答案,我至少可以为你的答案打分。再次感谢您!
SyncLock Q
    While Q.Count > 0
       barcodeLbl.Text &= Q.Dequeue
    End While
End SyncLock