因labview编程发现的串口接收发送问题
时间:12-13
整理:3721RD
点击:
因为课题需要,我编了一个程序从上位机串口接收来自单片机连续的数据,每个循环接收32字节,一共有3600个循环。波特率38400。调试中发现总有个别接收的数据异常,开始我认为是自己的程序有问题,但好几天查不出来。
然后我有一次想:有没有可能串口传过来的个别数据“变形”了呢?于是用一根串口线连接同一台电脑的两个串口,打开两次串口调试助手,一个用来模拟实际情况循环发送(每25ms)32字节,另一个接收。果然问题出现了:正常运行一段时间后就会发生丢数的现象。
我怀疑自己的电脑串口有问题了,再在其它机器上做同样的实验,情形还是如此。两台机器互连,情形也是如此。
这下我纳闷了,总不可能所有的机器串口都有毛病吧!
有人愿意帮我解答这个问题吗?有兴趣的话在自己的机器上试试吧。:)
然后我有一次想:有没有可能串口传过来的个别数据“变形”了呢?于是用一根串口线连接同一台电脑的两个串口,打开两次串口调试助手,一个用来模拟实际情况循环发送(每25ms)32字节,另一个接收。果然问题出现了:正常运行一段时间后就会发生丢数的现象。
我怀疑自己的电脑串口有问题了,再在其它机器上做同样的实验,情形还是如此。两台机器互连,情形也是如此。
这下我纳闷了,总不可能所有的机器串口都有毛病吧!
有人愿意帮我解答这个问题吗?有兴趣的话在自己的机器上试试吧。:)
是线的问题吧,或者可以弄个数据握手的协议,发现回送的数据不对就重新传送过去。每次传4位的数据和4位的PID,PID里说明这次的数据是重新发送的还是新的。
我试了,没有什么问题
可能是线的问题,还有接地充分嘛?
下位机的波特率算准了嘛