CSerialPort类的问题

ly4303 2011-07-28 08:17:33
龚老师写的CSerialPort类,发现有个小问题,本人弄了几天没解决,求大家帮助,要看源码的话,可以下载串口调试助手v2.2或v2.3 源码,网上都多着.
问题:循环自动发送,内容可以随意,为了看出问题,时间设为1ms,过一会儿,显示的内容很乱,丢失的现象很严重.不知大家有没有试过.
  我不想再测试了,烦得很......

有知道的朋友麻烦出出来解答一下,本人在此谢过了

...全文
73 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ly4303 2011-07-30
  • 打赏
  • 举报
回复
谢谢catyou,wyx100的回复
我是默认值测试的,也就是9600,正因为很多用这个类,所以才敢用
发送和接收都是用的龚老师自己写的(V2.3版本),怕自己写的东西有问题,所以才这样测试

我也懒得去折腾了,改用ms的控件.下次都不敢用CSerialPort这个类了

我把代码里的自动清空/自动分页的功能去掉了,也就是把所有接收到的东西都显示出来

用超级终端,没有太大的问题,亲测过,

只要是CSerialPort写的东西,都有这个问题,点一下"停止显示",再继续显示,它好像又可以了,我都被测怕了

catyou,这个要仔细测,才能测出来,我在网上搜了一下,别人好像也有这个问题,而且没有得到很好的解答
估计一般人没去这样测



ly4303 2011-07-29
  • 打赏
  • 举报
回复
谢谢大家的回复, 我想一秒钟发10字节或一秒种发4个节,应该可以处理过来吧
不管你怎么发,它都会出错的..中间还用了延时.。。
开始一段时间,的确没有错误,但发到后面错误就越来越明显了..

循环自动发送,我测了,也有问题,
发文件,也一样,我还分包发的呢,还是有问题

至于用协议,朋友你说得很对,确实可以,但我现在如果不用协议呢,有没有办法呢?
我也没有保证100%,至少稳定性就大打折扣了吧
catyou 2011-07-29
  • 打赏
  • 举报
回复
你的接收工具是串口测试软件或超级终端还是自己写的,如果是自己写的,最好是换成超级终端。

1S发4个字节还出错,那不用问是你没用好。
首先不用自动发,采用手动发送试试,维持一段时间看看会不会出错
如果手动不出错,那说明就是传输速率的问题。自动只不过是比手动快一些而己,没什么区别。
网上有很多用这个类的例子,你可以看看别人怎么做的。
我测试过100ms间隔,发送40个字节, 9600都没出错。
wyx100 2011-07-29
  • 打赏
  • 举报
回复
你串口的波特率设置多少啊?
拿14400来说,一秒钟发14400bit数据,包括数据位校验位等等,其实1s也就发1000多字节,1ms也就发1个多字节

wawava 2011-07-28
  • 打赏
  • 举报
回复
你串口的波特率设置多少啊?
拿14400来说,一秒钟发14400bit数据,包括数据位校验位等等,其实1s也就发1000多字节,1ms也就发1个多字节
fishion 2011-07-28
  • 打赏
  • 举报
回复
串口传输的速度本来就不快的,一般传数据时,都要定义一个协议,在协议头里增加数据长度什么的
vann1982 2011-07-28
  • 打赏
  • 举报
回复
1ms 略微的短了一点

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧