串口数据老出错是怎么一回事?
本帖最后由 wguangfu 于 2010-10-8 15:29 编辑我做的一个虚拟示波器,接收的是串口数据,串口每次接收10个数,FF 99 XX XX XX XX XX XX XX XX, 当文件头为FF 99 时,才处理后面的8个数,现在的问题是,如果FF 99 后面跟的8个数是定值,那么就显示很正常,但如果FF 99后跟的数值一直在变,那么波形图显示时,就像在播幻灯片,很久才更新一次,这是为什么啦?
你用串口调试助手能看以会变的时候接收正确么? 上传程序。 顶起啊 回复 tomcat 的帖子
串口看的话一切正常的啊 帖子上说的是10个字节,而程序里却是15个字节?你改下然后看看,当然,程序是有问题的,不过我觉得出现问题的几率不大 问题在结束符 ,你后面变动的数字有时会等于0AH ,导致接受结束,
例如 :消息为 F9 99 0A xxxx,那样byte in port=3 ,即就接受F9 99 0A 三个BYTE ,你说后面咋可能还有其他数据,所以串口得到消息有时正常有时不正常,者取决于你下位机上传的消息中0A的数量和位置。应此建议你将其转变为ASII 吗,即如要发99 就发39 39 ,那样就会避开结束符 回复 chenqinghua 的帖子
刚才我把数据为0A 的情况全部去掉,发现波形一下就对了。所以,你的观点是正确的,很感谢你以及大家的帮助,但如果改成ASCII的话好麻烦的,有没有其他方法啦?
你告诉我下,你的下位机是什么?? 这个也许对你有用
http://www.embcom.net/thread-28281-1-1.html 还没来得及看程序,您看一下您接收到的数据里面,有没有可能出现终止符,在精华列表贴中有一个关于接收数量会变少的那个贴子!还有数据有没有篡位! 如果是篡位请看这个:
串口通信中数据篡位的彻底解决办法:队列缓冲数据!附程序!
http://www.cpubbs.com/bbs/forum.php?mod=viewthread&tid=63745&fromuid=19
关于遇到终止符导致接收少了的请看这里,其中有一个贴子收录的就是!您找一下!
cpubbs论坛精华LV技巧贴,不断增加中!
http://www.cpubbs.com/bbs/forum.php?mod=viewthread&tid=13221&fromuid=19
页:
[1]