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

2019-03-24 09:27发布

本帖最后由 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画的凑合看吧……)

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



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
飞翔荷兰人号
2019-03-24 23:58
那还真是奇怪啊,你的串口部分的程序是自己写的吗,会不会是你的协议里面就涉及到先发个任意数据 然后收个0xff,接下来正常发送

一周热门 更多>

相关问题

    相关文章