单片机串口通讯问题,求解决?

Dreamer_LX灵 2011-12-26 10:03:12
两单片机进行485串口通讯时,主单片机每次发出的数据是对的,但是从单片机显示有时对,有时错,而且出错后再发都没有反应了,这是什么原因啊?
...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshi_ziyu 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 luling5897 的回复:]
两单片机进行485串口通讯时,主单片机每次发出的数据是对的,但是从单片机显示有时对,有时错,而且出错后再发都没有反应了,这是什么原因啊?
[/Quote]
很可能是从单片机死机了
zkzkz 2011-12-27
  • 打赏
  • 举报
回复
把串口中断也开了(但没有中断服务程序)起码要在0023H处加一条RETI不然每次中断压栈不出栈,堆栈溢出,另外程序照样在0023H处取指易跑飞。所以没有的中断不可以开。
Dreamer_LX灵 2011-12-27
  • 打赏
  • 举报
回复
谢谢各位!现在问题已经解决了,还是觉得很奇怪。。。

原因是主单片机出现了问题,我的主单片机是这样的,用四位数码管显示矩阵按键的数值,用的是动态扫描,从右往左移位显示。键值按好后,按下发送键把显示的值发送出去。大概的流程就是这样,每次串口发出的数据都是对的,从单片机开始显示是对的,但是连续多次发送后,主单片机发送数据依然是对的,然而从单片机就乱了,到最后就没反应了。我的主单片机数码管显示是放在定时器中断里面的,现在才把问题解决,原因竟然是我的定时器定时时间太短了和我把串口中断也开了(但没有中断服务程序),但我觉得最主要的原因是定时器定时时间太短,改了之后完全好了。但我觉得奇怪的是为什么主单片机每次发出的数据都是对的呢?
Dreamer_LX灵 2011-12-27
  • 打赏
  • 举报
回复
谢谢各位!现在问题已经解决了,还是觉得很奇怪。。。

原因是主单片机出现了问题,我的主单片机是这样的,用四位数码管显示矩阵按键的数值,用的是动态扫描,从右往左移位显示。键值按好后,按下发送键把显示的值发送出去。大概的流程就是这样,每次串口发出的数据都是对的,从单片机开始显示是对的,但是连续多次发送后,主单片机发送数据依然是对的,然而从单片机就乱了,到最后就没反应了。我的主单片机数码管显示是放在定时器中断里面的,现在才把问题解决,原因竟然是我的定时器定时时间太短了和我把串口中断也开了(但没有中断服务程序),但我觉得最主要的原因是定时器定时时间太短,改了之后完全好了。但我觉得奇怪的是为什么主单片机每次发出的数据都是对的呢?
Dreamer_LX灵 2011-12-27
  • 打赏
  • 举报
回复
谢谢各位!现在问题已经解决了,还是觉得很奇怪。。。

原因是主单片机出现了问题,我的主单片机是这样的,用四位数码管显示矩阵按键的数值,用的是动态扫描,从右往左移位显示。键值按好后,按下发送键把显示的值发送出去。大概的流程就是这样,每次串口发出的数据都是对的,从单片机开始显示是对的,但是连续多次发送后,主单片机发送数据依然是对的,然而从单片机就乱了,到最后就没反应了。我的主单片机数码管显示是放在定时器中断里面的,现在才把问题解决,原因竟然是我的定时器定时时间太短了和我把定时器中断也开了(但没有中断服务程序),但我觉得最主要的原因是定时器定时时间太短,改了之后完全好了。但我觉得奇怪的是为什么主单片机每次发出的数据都是对的呢?
jingke_szh 2011-12-26
  • 打赏
  • 举报
回复
要看两遍的设置是否一致
Simality 2011-12-26
  • 打赏
  • 举报
回复
有时对有时错可能是硬件问题或软件配置问题,需要多方面排查。

错误之后再发就没反应,是你协议的健壮性不佳。建议加入校验机制、错误处理与重发机制、超时重置通讯状态。
zhenghn2010 2011-12-26
  • 打赏
  • 举报
回复
现从硬件上看看是否有干扰和不可靠的问题。。。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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