VB 串口接收数据字节数多了一倍

我用VB串口控制下位机发送数据,如果直接用发送命令Mscomm1.output=Byte(n)的话,我发现在OnCommon事件中rcvtemp()=Mscommon.input后,接收到的字节多了一倍,在每一个有效数据字节后面都跟着一个字节的0。但是我发送之后等待接接收,就能正常接收到数据,程序如下savetime=timegettimewhile timegettime>savetime+1000Mscomm1.output=Byte(n)do eventsloop我用串口调试助手的话也不会出现多字节的问题请问为什么会出现字那么多数据为0的字节,在接收的过程中出了什么问题
2026年09月19日 10:14
有2个网友回答
网友(1):

MSDN上说MSCOMM有一个关于chr(0)的固有缺陷

解决方法是把接收缓冲inputlen=1,1次接受1个字节试试

另外,尽量不要用MSCOMM发送chr(0),这个0会把自己又带回来的(MSDN原文)

网友(2):

感觉 还是 VB 程序问题

看 msdn 吧

有VB 串口 的 入门书籍
Visual_Basic与_RS-232_串行通信控制

网络上有 pdf 文档,找不到,可以 联系!