文档库 最新最全的文档下载
当前位置:文档库 › matlab调试串口通信时,timeout报警问题的解决

matlab调试串口通信时,timeout报警问题的解决

前几天需要用到串口通信,就是很简单用上位机传数据的那种
由于lz只有一个串口,调试的时候,将2,3短接,自己发送自己接受。
采用matlab调试,结果出现以下报警信息:
“A timeout occurred before the Terminator was reached”
而且发送出去的数据一个也收不到。。。。。。
设置串口各种参数,不管用
改变发送数据的格式,不管用
采用不同的函数发送接受(将fscanf改为fread),不管用
google到一种ms比较靠谱的方法,大意是说字符串的结束符号不正确
但是查看帮助文档后,发现fprintf()发送出去的字符串默认的结束符号是\n,会自动改为所需的格式
也就是说,google的说法是不对的
真所谓“尽信书不如无书”,总算体会到这一点了

更令人郁闷的是很多论坛的求助帖,后面跟了一堆凑热闹的水文,还有很多跟帖求助的,最后发帖的lz来一句“这个问题我已经解决了”,然后就没有下文了,不管下面的求助者怎么问,lz像是消失了一般不搭理,当时骂娘的心都有,你自己发帖的时候也是心急如焚的,你应该能够理解后来人的心情,自己会了就闪人,下次谁还会帮你。。。。。

无奈之下,开始从头开始,慢慢理清思路,看了n多help文档之后,我确定自己的数据发送和接受的code没有问题


然后我将注意力转移到硬件上,一连试了别人的几个串口都是这样,真是奇怪

最后,山穷水复疑无路的时候,我猛然醒悟,原来是自己接线的时候接错了,本来应该2,3短接,但是实际上我将3,4短接了,因为我用了一根串口线插在机箱后面的串口上延长,在延长的时候把顺序搞反了。

就是这么简单,还是那句话“尽信书不如无书”,只要自己动手,一切都“得来全不费工夫”

遇到类似问题的朋友可以参考参考,当你看到以上报警信息的时候,请考虑一下是不是将线接反了

相关文档
相关文档 最新文档