串口发送数据运行2小时出错

[复制链接]
2920|6
 楼主| liaoyaohui 发表于 2011-12-10 11:36 | 显示全部楼层 |阅读模式
最近项目用到华邦的W77e58,以前没玩过,单片机串口0与pc软件间隔定时1s通讯,串口1与下面从机通过232转485通讯,再模拟一路串口用作扩展其它设备通讯,代码写好调试后出现如下现象:一般超过2个小时左右,pc软件下发指令77e58能收到,且能正常处理下发给从机,但77e58回发的给pc软件的速度好像慢了很多,时间久了直接没有回码,不知是否77e58有问题(因为以前没用过),还是代码哪里的bug?请高手们指点迷津!!不知有遇到类似情况的没有??
tyw 发表于 2011-12-10 12:41 | 显示全部楼层
异步通讯要注意把收数切入点调整到数据有效宽度的中间,才不易失步.
 楼主| liaoyaohui 发表于 2011-12-10 15:38 | 显示全部楼层
77e58串口0与pc软件间隔定时1s通讯,只是用来检测pc软件是否连接正常,还有pc软件主动下发,77e58主动上传给pc的数据,今天又测试了下,6个小时了都没问题,昨天大概两三小时(估计)就出问题了,有次做高低温测试时也是四个小时内出的同样的问题。
fe07fe 发表于 2011-12-10 20:14 | 显示全部楼层
发表一下不确定意见:pc串口数据缓存满了!可能那个pc串口软件有问题。
chunyang 发表于 2011-12-10 23:47 | 显示全部楼层
重点检查出问题以后的系统状态,看是串口硬件电路的问题还是程序的问题。
linqing171 发表于 2011-12-11 07:24 | 显示全部楼层
PC机装诺顿了?
如果usb转的串口,把驱动设置成2M缓存吧,默认4k太小了。修改下inf文件配合微软最新补丁就可以了。
linqing171 发表于 2011-12-11 07:26 | 显示全部楼层
上位机软件,里面存的东西特别大了以后也会卡。
在ctrl+alt+del 出现的界面里,选择进程,选择 查看/选择列/勾上虚拟内存,看看这个程序的内存和虚拟内存分别多大。
以前用delphi做了个东西,超过几十万行后,仅仅在列表的后面插入,电脑也变卡了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:听说21ic里面大虾多,我来学习学习。

18

主题

67

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部