打印

单片机通信问题求助

[复制链接]
2753|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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
程序没跑飞,指示灯还在闪,说明没通信上。。。。

使用特权

评论回复
5
ningling_21|  楼主 | 2010-11-20 21:34 | 只看该作者
3# zdhlixiang2006
软件并不简单,总共有20多k...

使用特权

评论回复
6
chunyang| | 2010-11-20 21:59 | 只看该作者
多半是程序结构问题,用软复位(不要重新上电)测试,如果问题消失则是软件问题,否则是硬件问题,这属于闩扣效应锁死IO所致,通常这时器件会明显发热。

使用特权

评论回复
7
原野之狼| | 2010-11-21 01:38 | 只看该作者
先检查下程序吧 灯在闪烁并不能说明程序工作正常

使用特权

评论回复
8
ningling_21|  楼主 | 2010-12-1 20:49 | 只看该作者
单片机发热与否已经看不到了...
通信不上后增加了强制复位以后,居然问题依旧...

使用特权

评论回复
9
ningling_21|  楼主 | 2010-12-1 21:01 | 只看该作者
现象描述:增加复位之后,灯常亮(连闪都不闪了),仍然通信不上,觉的不太可能...
产品在别人那里,自己看不到,只能听别人说故障现象...

使用特权

评论回复
10
coody| | 2010-12-1 21:46 | 只看该作者
用另一个串口来监控程序的运行(没有两个或以上串口的话,模拟一个,正式产品屏蔽掉监控程序即可),可以不中断程序,又可以找出问题。8位、16位、32位MCU我都是如此开发,不仿真,因为我做的项目,大部分一旦运行,都不允许停止,因为大部分都跟控制有关。

使用特权

评论回复
11
ningling_21|  楼主 | 2010-12-2 20:48 | 只看该作者
本帖最后由 ningling_21 于 2010-12-2 20:51 编辑

感谢楼上提醒。
程序的初始化部分,有段要判断振荡器稳定的程序是个死循环,只要振荡器稳定就会退出死循环。
听了故障现象描述,好像是死在这个初始化部分了,因为看门狗还没启动,所以不会自动恢复...

使用特权

评论回复
12
ningling_21|  楼主 | 2010-12-2 20:49 | 只看该作者
while(!aa)
{
aa=CLKMUL;
aa&=0x20;   //等待时钟乘法器稳定。。。
}

使用特权

评论回复
13
MaLaTang| | 2010-12-3 15:22 | 只看该作者
上位机的命令是定时的吗?单片机接收数据是中断接收吗?中断优先级是否设置到最高?
我试过非常离奇的问题,由于单片机忘了设置中断优先级,定时器中断比串口中断优先级高,且定时器中断的处理时间稍长,结果当上位机的定时发送与单片机的定时器中断非常合拍后,就一直是通信故障,因为每次都有数据漏收了。

使用特权

评论回复
14
POINTRTOS| | 2010-12-3 15:32 | 只看该作者
这样的问题通过串行发送几个数据跟踪一下就可以找出来吧.  把你怀疑的几个地方,通过串行输出不同的数据,什么数据收到,什么数据没有收到,非常清楚.

使用特权

评论回复
15
ningling_21|  楼主 | 2010-12-3 20:36 | 只看该作者
13# MaLaTang

多谢提醒...
上位机每10秒就发送一个复位命令,单片机是中断接收,但串口中断不是最高优先级
问题是,上位机不停的发送复位命令,如果这次没收到,下次也能收到,现在的现象是
无论如何都收不到(通信不上)了。

使用特权

评论回复
16
ningling_21|  楼主 | 2010-12-3 20:40 | 只看该作者
10# coody
是个不错的方法...

使用特权

评论回复
17
ningling_21|  楼主 | 2010-12-4 12:37 | 只看该作者
这个单片机系统可以在线加载升级程序,由BOOT实现
客户加载后居然,好像程序丢失了,单片机完全不能工作了...

使用特权

评论回复
18
必有我师| | 2010-12-4 13:13 | 只看该作者
这是怎么弄的啊,单片机也能在线BOOT吗,这不是DSP中的内容吗?

使用特权

评论回复
19
liuxingyude| | 2010-12-4 16:48 | 只看该作者
单片机的串行通信喝着有没有区别啊!

使用特权

评论回复
20
ningling_21|  楼主 | 2010-12-4 17:55 | 只看该作者
18# 必有我师
单片机完全可以的,只不过是上电最先运行的程序...

使用特权

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

本版积分规则

5013

主题

17707

帖子

51

粉丝