4280|4

15

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

奇特的串口故障-必须上位机先发送任意数据,收发才能正常工作 [复制链接]

本帖最后由 liujj05 于 2016-4-13 15:56 编辑

各位权当看个故事了,我也会及时跟进最新情况
事情是这样的:

=====================背景========================
我用一块MSP4305438A的淘宝到的开发板和一个GPRS模块STM900A进行串口通信,两边都是通过MAX232之类的芯片转换成了RS232的电平,并给出了一个DB9的接口,照理说搞一根串口线就能互相通信了。


我并不知道输入输出的线序关系,也就是2、3调换还是不调换不知道,就随便拿了两根线准备试试看,因为我觉得即使颠倒了问题也不大。


然后接通后发现通信不成功,正在奇怪中的时候我就拔下串口线查到了我的台式机上,发现原来可以和GPRS模块正常通信的台式机也不能正常的和GPRS模块通信了……因为以前用自己开发的带MAX232的板子就总出问题,我就断电后下意识的摸了摸GPRS模块的MAX232芯片,我去烫的可以烤肉了,我就觉得是不知道怎么的误操作把它烧了,但是过会儿晾凉了我又试了试发现还能正常用
===================以上背景========================

====================症状==========================
反过来5438A这头,以前能用的RS232通信例程却死活跑不通了

例程正常运行效果及功能:1. 按按钮,单片机通过串口发送一个字符串到PC机;
2. PC机通过串口发送到开发板的数据可以显示在开发板的七段数码管上

问题出现后:
1. 开发板上电之后直接按按钮,PC机收不到数据
2. 开发板上电之后PC机通过串口向开发板发送数据,开发板可以正常接收并显示
而且:
开发板上电后,PC机向串口发送一次任意数据后,PC机会立刻受到一个FF,之后,按动开发板上的按钮,PC机可以正常受到数据

然后我就不知道是哪里有问题了,因为单片机和开发板的DB9之间还隔着一个MAX232,且单片机开发板提供一些直接和它的引脚相连的插针(我目前用的与MAX232相连的是10.4和10.5两个接口),我就用杜邦线把这俩接口都引出来了,然后用一个CH340模块直接接到PC机的一个USB上,所以目前这种情况下,单片机如果发送一个数据,一方面通过MAX232转换可以直接发给PC机的串口,另一方面通过CH340可以发给PC机的USB

神奇的事情发生了

接通电源后,什么都不做,直接通过串口助手打开PC机的串口(与MAX232相连),会一直会收到FF或者FE

而同时,串口助手打开PC机的USB口(与CH340相连,直接从单片机引线),居然可以正常收发。

但是,必须把PC机的串口和开发板的DB9接口用串口线连起来,单片机才能通过CH340和PC机的USB口正常通信,否则也是不行的。

另外,此时通过串口助手,通过PC机的串口发送任意数据后,PC机连续收到FF或者FE的现象就停止了

连接的示意图如图所示(PPT画的凑合看吧……)


以上神奇的现象我实在是搞不清到底是MAX232坏掉了还是本身单片机的IO就坏掉了,最近联系开发板的卖家拿回去修了
问题是,这到底是怎么坏的啊……



通信.png (25.97 KB, 下载次数: 1)

通信.png

最新回复

那还真是奇怪啊,你的串口部分的程序是自己写的吗,会不会是你的协议里面就涉及到先发个任意数据 然后收个0xff,接下来正常发送  详情 回复 发表于 2016-4-13 16:00
 
点赞 关注

回复
举报

366

帖子

1

TA的资源

一粒金砂(高级)

沙发
 
我记得GSM模块貌似就是要先发一个任意数据的,我当时用的也是900A

点评

不是不是,GSM模块那头没啥问题,现在PC和开发板的串口通信不正常,PC要先发任意数据到开发板,开发板会返回一个FF,然后开发板发送的数据PC才能收到。如果上电之后开发板直接发数据,PC是收不到的,也可能是开发板  详情 回复 发表于 2016-4-13 15:00
 
 

回复

15

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
飞翔荷兰人号 发表于 2016-4-13 14:56
我记得GSM模块貌似就是要先发一个任意数据的,我当时用的也是900A

不是不是,GSM模块那头没啥问题,现在PC和开发板的串口通信不正常,PC要先发任意数据到开发板,开发板会返回一个FF,然后开发板发送的数据PC才能收到。如果上电之后开发板直接发数据,PC是收不到的,也可能是开发板根本就发布出来,以前不这样……
 
 
 

回复

366

帖子

1

TA的资源

一粒金砂(高级)

4
 
那还真是奇怪啊,你的串口部分的程序是自己写的吗,会不会是你的协议里面就涉及到先发个任意数据 然后收个0xff,接下来正常发送

点评

谢谢关注啊哈哈~程序用的例程,以前跑过的~ 我猜想肯定是神马东西坏掉了,比如让开发板那边串口的发送端一直是高电平,拉不低,自然开发板的数据就发不出来,我从PC这头发送点儿什么说不定就鬼使神差的把那个发送端  详情 回复 发表于 2016-4-13 16:09
 
 
 

回复

15

帖子

1

TA的资源

一粒金砂(中级)

5
 
飞翔荷兰人号 发表于 2016-4-13 16:00
那还真是奇怪啊,你的串口部分的程序是自己写的吗,会不会是你的协议里面就涉及到先发个任意数据 然后收个0 ...

谢谢关注啊哈哈~程序用的例程,以前跑过的~
我猜想肯定是神马东西坏掉了,比如让开发板那边串口的发送端一直是高电平,拉不低,自然开发板的数据就发不出来,我从PC这头发送点儿什么说不定就鬼使神差的把那个发送端的电平拉低了一下,因为低电平0又是起始位,所以很可能会首先收到一个FF,之后可能就工作正常了,说不定换个232就好了呢……可惜手头没有拆焊的东西,开发板又不敢简单粗暴的弄,200+的东西说便宜也有点儿心疼嘿嘿
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表