解决“串口接收数据时被截断”的问题
2012-04-18 13:44
417 查看
解决“串口接收数据时被截断”的问题
今天是忙里愉闲的写了这篇文章,我写的一个串口测试程序,用的是PComm.dll进行通信的,但在有的电脑上运行时,接收数据只要有点长度,
比如30个字节,数据就会被截断,并不是所有电脑都会出现这样的问题,害得同事说是不是用的控件有问题,其实,这知道,PComm.dll这样
的组件,技术已经相当的成熟了,做这个控件,人家可是大厂,就靠这吃饭的,再说了,几十年的东西,怎么会有问题,要有问题,肯定是自
已的问题;
起初我怀疑是个别USB转串口的问题,可是刚好遇到一台IBM笔记本电脑的串口也出现了同样的问题,这可是硬串口啊,一直郁闷了很久,今
天用串口调试助手测试,发现同样的数据帧还是被截断了,说明不是个别软件的问题,当跟踪发现,停顿时间稍长一点,接收数据是正常的,
就从这里入手,接收数据时判断长度是否和要接收的数据长度相等,如果不相等,多读几次,就OK了;看来,有的串口接收数据是不一样,好
像缓冲区太小,当接收数据太长时,要分几次才能把数据接收完,所以当数据太长时,要分几次读取;
今天是忙里愉闲的写了这篇文章,我写的一个串口测试程序,用的是PComm.dll进行通信的,但在有的电脑上运行时,接收数据只要有点长度,
比如30个字节,数据就会被截断,并不是所有电脑都会出现这样的问题,害得同事说是不是用的控件有问题,其实,这知道,PComm.dll这样
的组件,技术已经相当的成熟了,做这个控件,人家可是大厂,就靠这吃饭的,再说了,几十年的东西,怎么会有问题,要有问题,肯定是自
已的问题;
起初我怀疑是个别USB转串口的问题,可是刚好遇到一台IBM笔记本电脑的串口也出现了同样的问题,这可是硬串口啊,一直郁闷了很久,今
天用串口调试助手测试,发现同样的数据帧还是被截断了,说明不是个别软件的问题,当跟踪发现,停顿时间稍长一点,接收数据是正常的,
就从这里入手,接收数据时判断长度是否和要接收的数据长度相等,如果不相等,多读几次,就OK了;看来,有的串口接收数据是不一样,好
像缓冲区太小,当接收数据太长时,要分几次才能把数据接收完,所以当数据太长时,要分几次读取;
相关文章推荐
- Linux串口通信中一种接收不到数据的问题的解决
- MFC串口发送数据大于128数据出错的解决办法(发送0xFE接收得到0x3F等问题)
- STM32 ucosii 串口接收数据 遇到的问题及解决思路
- 解决在epoll中accept接收端口会漏处理的问题. 直到新的socket消息到达,epoll_wait才响应去接收socket端口数据的问题
- 解决SpringMvc后台接收json数据中文乱码问题的几种方法
- mina自定义编解码器接收处理byte数组(同时解决数据传输中的粘包、缺包问题)
- 串口接收时丢数据问题解决方案
- mina自定义编解码器接收处理byte数组(同时解决数据传输中的粘包、缺包问题)
- JAVA学习13_line.split("")的使用和解决ES接收数据不全的问题
- QSerailPort使用readAll()接收数据不全问题解决
- 串口通信中,解决serialport.DataReceived接收到的数据不完整
- 解决部分浏览器ajax提交数据,数据已改变,却后台数据接收数据还是上一次值的问题
- 基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activity 后还能接收到串口数据吗?
- STM32串口接收中断溢出问题解决
- 解决“将截断字符串或二进制数据。语句已终止……”的问题
- 串口接收时丢数据问题解决方案
- 项目 - SerialPort/Socket通信库[射频技术(串口+网口),解决:多串口,多设备,多指令,数据错包问题]
- C# 解决串口接收数据不完整
- 解决Postman发送post数据但是Node.js中req.body接收不到数据的问题[已解决]
- nginx +phpfastcgi 环境下 导出excel文件,超时,数据被截断问题,解决