各位权当看个故事了,我也会及时跟进最新情况
事情是这样的:
======================================背景==============================================
我用一块MSP4305438A的淘宝到的开发板和一个GPRS模块STM900A进行串口通信,两边都是通过MAX232之类的芯片转换成了RS232的电平,并给出了一个DB9的接口,照理说搞一根串口线就能互相通信了。
我并不知道输入输出的线序关系,也就是2、3调换还是不调换不知道,就随便拿了两根线准备试试看,因为我觉得即使颠倒了问题也不大。
然后接通后发现通信不成功,正在奇怪中的时候我就拔下串口线查到了我的台式机上,发现原来可以和GPRS模块正常通信的台式机也不能正常的和GPRS模块通信了……因为以前用自己开发的带MAX232的板子就总出问题,我就断电后下意识的摸了摸GPRS模块的MAX232芯片,我去烫的可以烤肉了,我就觉得是不知道怎么的误操作把它烧了,但是过会儿晾凉了我又试了试发现还能正常用
=====================================以上背景=============================================
======================================症状======================================
反过来5438A这头,以前能用的RS232通信例程却死活跑不通了,症状是:
例程是按一个按钮,通过串口发送一个字符串到PC机,现在按钮的IO通过LED灯显示工作正常,但是PC机收不到数据
奇怪的是,这时通过PC机发送任意数据到单片机,PC机都会收到一个FF,然后单片机就可以正常发送数据到PC机了
总结起来就是:
串口通信时,PC机必须先发个什么到单片机,然后PC机会收到一个FF,然后收发都能正常工作
然后我就不知道是哪里有问题了,因为单片机和开发板的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机正常通信,否则也是不行的。
以上神奇的现象我实在是搞不清到底是MAX232坏掉了还是本身单片机的IO就坏掉了,最近联系开发板的卖家拿回去修了
问题是,这到底是怎么坏的啊……
本文来自论坛,点击查看完整帖子内容。