打印

串口通信不稳定

[复制链接]
13585|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jimi1205|  楼主 | 2012-7-30 00:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近发现这样一个问题,有块电路板是采用232串口跟电脑通信(采用SP3232芯片,供电电压5V,TX端接PC串口的第2脚,RX接第3脚,GND接第5脚),供电电压是从开关电源分一路过来的(其中,开关电源同时给几块电路板供电),不过现在发现有时候会出现不能通信的现象,有时候这次开机可以,但过段时间再试有可能会不能通信,初步怀疑是接地的问题,但不能确定,请大家帮忙分析下可能在哪边出问题呢
还发现这样一种现象,带串口通信的电路板出现不能通信的时候,电源数据线断开后,过了很大一会儿再通电接数据线,然后就又可以通信了,但是下次开机的时候,就有可能不能通信,这种是怎么回事呢

相关帖子

沙发
一级菜鸟| | 2012-7-30 04:15 | 只看该作者
9成是代码没写好,MCU死当了

使用特权

评论回复
板凳
一级菜鸟| | 2012-7-30 04:16 | 只看该作者
区分软件还是硬件问题很容易,MCU端搭接示波器查看信号是否干净,上升下降沿是否干脆,能条件重演的毛病都不难找,难找的是随机出现的问题

使用特权

评论回复
地板
qiujiahongde| | 2012-7-30 08:30 | 只看该作者
用示波器抓抓,看看是真没数据,还是假没数据;从MCU管脚开始,然后是232输出;
注意你的现象,是没数据,还是数据错误!!!

使用特权

评论回复
5
dlyt_test001| | 2012-7-30 08:33 | 只看该作者
要分清是软件还是硬件问题。
首先要看看单片机是否复位!

使用特权

评论回复
6
jimi1205|  楼主 | 2012-7-30 11:04 | 只看该作者
回楼上的,单片机除了不能通信之外,其他功能还是可以使用的,比如我电路板上还有其他功能,如按键扫描之类的,都正常。会不会是电脑里面的串口带静电或者什么干扰到串口的收发之类的?

使用特权

评论回复
7
ayb_ice| | 2012-7-30 11:07 | 只看该作者
应该是逻辑混乱了

通信是否有出错方面的处理,比如,通信超时。。。

使用特权

评论回复
8
jimi1205|  楼主 | 2012-7-30 11:14 | 只看该作者
另外,单片机我采用的MAX707的复位芯片,应该是有复位的,就是串口通信不正常,之前我在实验室自己调试的时候都是没问题的

使用特权

评论回复
9
受不了了| | 2012-7-30 12:07 | 只看该作者
应该是通讯程序有漏洞,缺乏合理的纠错功能

使用特权

评论回复
10
jimi1205|  楼主 | 2012-7-30 12:32 | 只看该作者
楼上说的通讯程序有漏洞是指哪方面,为什么会导致通信时而正常,有时候又不正常

使用特权

评论回复
11
受不了了| | 2012-7-30 13:00 | 只看该作者
就是接收到意外或者错误数据时的处理

使用特权

评论回复
12
dlyt_test001| | 2012-7-30 13:18 | 只看该作者
回楼上的,单片机除了不能通信之外,其他功能还是可以使用的,比如我电路板上还有其他功能,如按键扫描之类的,都正常。会不会是电脑里面的串口带静电或者什么干扰到串口的收发之类的? ...
jimi1205 发表于 2012-7-30 11:04

其它功能可以使用,不等于没有复位。
分清软硬件问题。
1、比如有没有复位,用一个不用的IO口,上电时输出一个方波,之后一直维持高电平。用示波器看一下,正常运行时有没有方波输出,也就是有没有复位。
2、如果有复位,看一下是软硬件复位,比如把所有能引起的软件复位都关掉,再看一下有没有复位。
之后再跟据之前的测试情况,进行下一步的检测......

使用特权

评论回复
13
dqyubsh| | 2012-7-30 15:33 | 只看该作者
换成modbus协议,自己写的代码缺东少西的,压根就是不可靠的。

使用特权

评论回复
14
3htech| | 2012-7-30 16:28 | 只看该作者
硬件上,sp3232的另一组不用的接口,是不是OUT接的地?
先确定是否是硬件上的问题,写一个简单的测试程序。

测试程序1:只接收,不发送,接收到一个数据,LED或BEEP就翻转一下状态。或者根据接收到数据的大小来使相应的LED或BEEP,亮多少下。这样可以确定接收是否正常。

测试程序2:只发送,不接收,每隔1s发送一个数据,BDR固定,校验方式无所谓。以确定是否能发送正确。

两个都通过了,那就是你程序的问题。

如果没通过,就去检查硬件吧。

使用特权

评论回复
15
dengqi1987822| | 2012-7-30 16:35 | 只看该作者
我是来学习的

使用特权

评论回复
16
jimi1205|  楼主 | 2012-7-30 17:24 | 只看该作者
硬件上,sp3232的另一组不用的接口,我没有接地,直接悬空,但这样在实验室电脑上用稳压电源供电调试一直都是没问题的呀,是否是开关电源因为同时给多块电源供电,干扰到这块电路板,其余电路板都是采用485总线通信连接另一台电脑,只有这块是单独跟一台电脑的串口连接,但电源都来自开关电源的V+和V-,程序上我判断是有按键输入,或者电位器有变化(我是通过AD转换去采集变化信号,STC单片机内部有AD转换功能),数据就会发送出去,发送程序也很简单,直接对SBUF进行赋值操作

使用特权

评论回复
17
schenglong| | 2012-7-30 17:52 | 只看该作者
来学习下

使用特权

评论回复
18
hawksabre| | 2012-7-30 18:28 | 只看该作者
通讯延时  电磁干扰  软件有bug  都可能出问题  看一下阻抗匹配问题  以前我遇到过

使用特权

评论回复
19
XZL| | 2012-7-30 22:09 | 只看该作者
有可能是死机,建议你写个程序测试一下。不过有些情况是芯片受到干扰死锁了

使用特权

评论回复
20
ddddd6666| | 2012-7-30 23:21 | 只看该作者

使用特权

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

本版积分规则

0

主题

8

帖子

0

粉丝