免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1416 | 回复: 7
打印 上一主题 下一主题

为何出错?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-11 08:32 |只看该作者 |倒序浏览
我用VC++写的一个串口接受程序中,把串口过来的字节转换存储在str(CString)中,但加上如下语句后出现问题,程序可以运行,但是运行程序后偶尔就会报错:
  CString nums=str.Mid(0,3);
  CString state=str.Mid(3,1);
  str.Delete(0,3);
说是strex.cpp等三个文件中有问题.不知为何,望各位高手指教

论坛徽章:
0
2 [报告]
发表于 2003-08-11 09:38 |只看该作者

为何出错??

是否能肯定str的长度一定大于3?

论坛徽章:
0
3 [报告]
发表于 2003-08-11 10:44 |只看该作者

为何出错??

是的,,因为程序一般正常,但偶尔有问题,比如:我要接受的字符串是ABCD,但是因为串口接受有时是有杂波和干扰的,当接受到的字符串如果是ABCDF0(估计是由于中断的高低电平变化引起而多了F0)时,我的程序就出错,怎么排除这个错误呢?谢谢?

论坛徽章:
0
4 [报告]
发表于 2003-08-11 13:21 |只看该作者

为何出错??

出错就校验啦。

论坛徽章:
0
5 [报告]
发表于 2003-08-11 18:12 |只看该作者

为何出错??

校验不出的啊,程序是能通过的,但某些情况下就是由于这几行程序引起程序死掉,但一般能够正常运行而不出现错误.

论坛徽章:
0
6 [报告]
发表于 2003-08-11 18:21 |只看该作者

为何出错??

为什么校验不出呢?CRC校验不行吗?设计一个协议,头上包含长度和校验值,然后对数据进行校验,一次接收指定的长度,多的丢弃。这还不够吗?

论坛徽章:
0
7 [报告]
发表于 2003-08-11 20:37 |只看该作者

为何出错??

校验是正确的,这个办法我也想用,但还不是蛮清楚到底怎么搞好?我做的是一个监控软件,协议定的信息不只一个字节,而且是视情况而不同.本来我的程序没有什么的问题的,但有了那几个语句后就偶尔出问题,我不知道是怎么回事,这到底是什么原因啊?谢谢

论坛徽章:
0
8 [报告]
发表于 2003-08-11 20:40 |只看该作者

为何出错??

因为我的监控信息是用无线接受的,随时都不停的有干扰信号.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP