发新帖我要提问
12
返回列表
打印

程序跑了2个多月,然后死掉了。怎么解决问题呢?

[复制链接]
楼主: happystar
手机看帖
扫描二维码
随时随地手机跟帖
21
yf_tech| | 2007-2-7 08:35 | 只看该作者 回帖奖励 |倒序浏览

我也再说两句!

你采集的数据是16BIT的,还是8BIT的????
如果是前者,那估计是你串口中断没有做好!
如果是后者,我还没见过,呵呵~~
等你回答后我再说两句吧

使用特权

评论回复
22
xiaoyuan_ly| | 2007-2-9 13:48 | 只看该作者

波特率有问题吗?! 采用固定模式会好点。。。

    只要主机足够的互斥和从机足够的互斥,再加上校验(如CRC校验,不过单片上还是采用4位海明校验比较好点)就没有问题的了。

1、波特率有问题吗?! 采用固定模式会好点。。。 (个人认为)
2、主机子程序要足够的互斥(包括各个中断),从机采用中断响应,查询接收数据比较好(这样也可以保证足够的互斥和实时性)。
3、看你的系统工作模式和我差不多就来多说几句了,我也是多个单片机通讯来完成各个模块的参数、功能等要求的,也不需要其他器件外扩(单片引脚和功能足够了)。其次,对于不能多主通讯的话,你可以采用从机中断主机的模式。这样,你可以再用一片2051来仿真8259中断控制器也很方便。
4、建议:  在明显有主从之分且小范围功能模块组合采用RS232+校验比教好。需要多主通讯的话,CAN是比较好的选择,你可以试试看。。。
5、我自己现在是小范围用RS232来做,大系统用RS232+CAN来实现的。。

不妥之处请指正。。。。。
   

使用特权

评论回复
23
happystar|  楼主 | 2007-2-9 17:50 | 只看该作者

程序从上次错误一直到现在依然没有问题的

我一次送面板的数共有24*2Byte,每个数2个字节。波特率9600。主机发送采用延时等待方式,而面板采用中断方式接受的。收发中间没有采用协议和校验的。我估计就是这里出来的问题。如果再出现问题的话,我就在面板上加个数据头和校验。
谢谢大家指教。

使用特权

评论回复
24
xiaoyuan_ly| | 2007-2-9 22:23 | 只看该作者

再说一句!!!

    如果你的实时等要求允许的话,我建议采用CRC或4位海明校验+校验和,毕竟数据在传递过程中,一个字节的8位电信号,其一位BIT出错的概率还是不低,但2位同时出错就相对比较低了,再说还有校验和。。。
   顺便提一下,我对关键数据的传递都采用这样的方式,如果只是显示用就最多检验和,甚至就没有做。
   还有我一般都不用狗的。

使用特权

评论回复
25
dai_weis| | 2007-2-11 12:43 | 只看该作者

再补充几句

校验的时候可以只校验正确与否,如果正确则使用,错误则抛弃,比较适用单向串行通信,如果你的错误很多,那么电路的设计应该有问题,至于狗么,等到它咬了,基本上就晚了,这时候只要保证系统处于最安全的状态就可以了。

使用特权

评论回复
26
happystar|  楼主 | 2007-2-11 17:28 | 只看该作者

谢谢楼上各位

多谢热心指导,受教拉。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则