日期:2014-05-20  浏览次数:20687 次

串口数据经常收不全,应该怎么办?
我用单片机给串口调试助手发数据,调试助手能正常接收,用调试助手给我自己编的Java程序发数据也能正常收,但是用单片机直接给Java程序发就经常出现收不全的情况,常常只能收到一段数据,而且往往只收到后面半段数据,应该不是发送频率太高来不及收的原因,因为我已经把发送频率降到每三秒中发送一串数据,已经很慢了,而且数据也不多,总共才20个字符,到底是什么问题呢?

------解决方案--------------------
我以前碰到过这个情况 原因是你在openPORT的时候需要有几个参数 具体哪个参数我忘了

大体意思就是 某一个openPORT的时候传进去的参数不对。 不对的结果是 有的时候可以用 有的时候就会漏东西 那个参数好像是规定传输模式的
------解决方案--------------------
你把参数都确认一下 搞清楚每一个的意思 希望会修复问题
------解决方案--------------------
不好意思··不了解单片机··但是··会不会是中文导致的?
------解决方案--------------------
探讨

引用:
你把参数都确认一下 搞清楚每一个的意思 希望会修复问题


我今天又调试了半天,你说的参数是串口波特率数据位校验位的设置吧,我写的应该没有问题,而且我发现其实单片机发送的数据我都收到了,只是它不能在一次事件中收全,总是要分2—3个事件来收,导致出现一种数据收不全的假象,但是怎么样才能在一次事件中把所以数据都收了呢?ps我的数据不多,就20个字……

------解决方案--------------------
探讨

回5楼:
不是单片机的问题,是serialport的问题,单片机的程序肯定没有问题,我以前用vb写的串口接收程序就可以很好的接收单片机的数据。