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

SerialPort1接收的数据0好像没有了,请教是咋回事

2012-11-04 
SerialPort1接收的数据0好像没有了,请问是怎么回事?我想用VB的SerialPort1控件实现串口收发功能,但是在接

SerialPort1接收的数据0好像没有了,请问是怎么回事?
我想用VB的SerialPort1控件实现串口收发功能,
但是在接收到的数据,和我发送的不一样,好像是遇到“0”就自动忽略了。
不知道是怎么回事。

应接收到的数据:55 AA 00 05 05 01 00 82 00 83 55 AA
实际收到的数据:55 AA 05 51 08 20 83 55 AA

我的接受方法是定时500MS接收一次。
接收代码如下:

VB code
n = SerialPort1.BytesToReadIf n > 0 Then    ReDim Rc(n)    For i = 1 To n    Rc(i) = SerialPort1.ReadByte    strrc += CStr(Hex(Rc(i)))NextEnd If


接收的数据存在strrc 里

[解决办法]
strrc += CStr(Hex(rc_f)) 我觉得嘛 VB 不要用+= 因为这是用在数字里面的,而且vb里面很多隐式转换,如果两个字符串都是数字,用+=很可能就变成了加法运算了, VB连接字符串用&
[解决办法]
VB code
        If SerialPort1.IsOpen = True Then            n = SerialPort1.BytesToRead            If n > 0 Then                uart_rec_endflag = 1                For i = 1 To n                    strrc =  strrc & Right("0" & Hex(SerialPort1.ReadByte), 2)                Next i            Else        '...... 

热点排行