单片机通信问题求助

[复制链接]
 楼主| ningling_21 发表于 2010-11-18 22:02 | 显示全部楼层 |阅读模式
本帖最后由 ningling_21 于 2010-11-18 22:04 编辑

平时通信正常,工作2个或N个小时后,表现为上位机收不到数据(串口调试软件),单片机系统显示为通信故障(灯闪烁),硬件复位后正常,请高手支招。
单片机为C8051F340....
通信过程为:单片机不主动发送数据,接收到上位机命令才返回数据...
laoliang3064 发表于 2010-11-18 22:14 | 显示全部楼层
会不会程序飞了?或者触发了其他中断?
zdhlixiang2006 发表于 2010-11-18 23:02 | 显示全部楼层
如果软件真如你所说那么简单,那就是硬件的问题
 楼主| ningling_21 发表于 2010-11-20 21:33 | 显示全部楼层
2# laoliang3064
程序没跑飞,指示灯还在闪,说明没通信上。。。。
 楼主| ningling_21 发表于 2010-11-20 21:34 | 显示全部楼层
3# zdhlixiang2006
软件并不简单,总共有20多k...
chunyang 发表于 2010-11-20 21:59 | 显示全部楼层
多半是程序结构问题,用软复位(不要重新上电)测试,如果问题消失则是软件问题,否则是硬件问题,这属于闩扣效应锁死IO所致,通常这时器件会明显发热。
原野之狼 发表于 2010-11-21 01:38 | 显示全部楼层
先检查下程序吧 灯在闪烁并不能说明程序工作正常
 楼主| ningling_21 发表于 2010-12-1 20:49 | 显示全部楼层
单片机发热与否已经看不到了...
通信不上后增加了强制复位以后,居然问题依旧...
 楼主| ningling_21 发表于 2010-12-1 21:01 | 显示全部楼层
现象描述:增加复位之后,灯常亮(连闪都不闪了),仍然通信不上,觉的不太可能...
产品在别人那里,自己看不到,只能听别人说故障现象...
coody 发表于 2010-12-1 21:46 | 显示全部楼层
用另一个串口来监控程序的运行(没有两个或以上串口的话,模拟一个,正式产品屏蔽掉监控程序即可),可以不中断程序,又可以找出问题。8位、16位、32位MCU我都是如此开发,不仿真,因为我做的项目,大部分一旦运行,都不允许停止,因为大部分都跟控制有关。
 楼主| ningling_21 发表于 2010-12-2 20:48 | 显示全部楼层
本帖最后由 ningling_21 于 2010-12-2 20:51 编辑

感谢楼上提醒。
程序的初始化部分,有段要判断振荡器稳定的程序是个死循环,只要振荡器稳定就会退出死循环。
听了故障现象描述,好像是死在这个初始化部分了,因为看门狗还没启动,所以不会自动恢复...
 楼主| ningling_21 发表于 2010-12-2 20:49 | 显示全部楼层
while(!aa)
{
aa=CLKMUL;
aa&=0x20;   //等待时钟乘法器稳定。。。
}
MaLaTang 发表于 2010-12-3 15:22 | 显示全部楼层
上位机的命令是定时的吗?单片机接收数据是中断接收吗?中断优先级是否设置到最高?
我试过非常离奇的问题,由于单片机忘了设置中断优先级,定时器中断比串口中断优先级高,且定时器中断的处理时间稍长,结果当上位机的定时发送与单片机的定时器中断非常合拍后,就一直是通信故障,因为每次都有数据漏收了。
POINTRTOS 发表于 2010-12-3 15:32 | 显示全部楼层
这样的问题通过串行发送几个数据跟踪一下就可以找出来吧.  把你怀疑的几个地方,通过串行输出不同的数据,什么数据收到,什么数据没有收到,非常清楚.
 楼主| ningling_21 发表于 2010-12-3 20:36 | 显示全部楼层
13# MaLaTang

多谢提醒...
上位机每10秒就发送一个复位命令,单片机是中断接收,但串口中断不是最高优先级
问题是,上位机不停的发送复位命令,如果这次没收到,下次也能收到,现在的现象是
无论如何都收不到(通信不上)了。
 楼主| ningling_21 发表于 2010-12-3 20:40 | 显示全部楼层
10# coody
是个不错的方法...
 楼主| ningling_21 发表于 2010-12-4 12:37 | 显示全部楼层
这个单片机系统可以在线加载升级程序,由BOOT实现
客户加载后居然,好像程序丢失了,单片机完全不能工作了...
必有我师 发表于 2010-12-4 13:13 | 显示全部楼层
这是怎么弄的啊,单片机也能在线BOOT吗,这不是DSP中的内容吗?
liuxingyude 发表于 2010-12-4 16:48 | 显示全部楼层
单片机的串行通信喝着有没有区别啊!
 楼主| ningling_21 发表于 2010-12-4 17:55 | 显示全部楼层
18# 必有我师
单片机完全可以的,只不过是上电最先运行的程序...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5014

主题

17806

帖子

51

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