求助大神,关于接受串口数据出现的多个问题
下面进行描述,求大神指导。
若是先运行程序再连接串口并对板子上电,出现奇偶校验错误,如图1.
停止后再运行,出现发生帧错误,如图2.
停止后再运行,或者先连接串口发送数据在运行程序,则读不出数据,若不用属性节点则显示超时,如图3.
程序很简单,如图4.
看了一些帖子,比如在VISA配置串口后加入延时和清空IO缓冲区也没有效果。
看看大家有什么思路,万分感谢。
另外,用串口助手读串口的数据有时会读不出来,有时候没有问题。用VI程序读串口助手的数据没有问题,用VI程序读另一块数据发送较慢板子发的数据也没有问题。
个人比较倾向是数据量比较大,缓存满了,导致出现问题。但是怎么也解决不了,非常郁闷。
再次谢谢大家指导。




校验的问题解决了,是板子没设好,但其他问题依然还在。
另外调试过程老是出现串口读不到数据,以至于超时。用MAX测试也一样,能确定是板子的问题吗?
你尝试一下加大延时试试
加油,虽然我也不太会,但是,你要加油,爱你么么哒。
串口被占用,多个程序竞争使用串口,关掉其他程序试一试。
我之前的延时就是很大的,怕超限影响才变小的
今天又测了一下,先用MAX读的,都读出来了,关掉MAX,打开vi。把程序的循环去掉,读取字节数改为1024,也读出来了几次。
但是!但是!
大约过了一分钟后再运行程序,由出现了读取超时,再用MAX读也不行。
有没有可能是VI程序自己没有关闭串口。
请赐教!
谢谢回复!
为了确保每次串口都关闭,我还在程序前面顺序结构加了关闭VISA,可还是运行的前几次可以,后面就显示读取超时。

http://bbs.elecfans.com/forum.ph ... d=583949&extra=
适当删减修改对你的程序就可用
多谢指教!
我试试看!
请问这里的移位寄存器是起什么作用
读取的过于频繁,所以读空了!
这里不用寄存器,我忘改过来了,sorry
超时设置的是10s,大约3ms就会发送8byte,不应该会超时跳出的啊
超时设置的是10s,大约3ms就会发送8byte,不应该会超时跳出的啊 你确定?那边连续发送?
是的,用串口助手可读出,数据刷刷的
串口设置时请将“启用终止符”使能端设置为F,看看。
问题解决了,原因出在PL-2303USB-to Serial
可能是因为和系统有兼容上的问题,换成CH340之后能读到数据了
但是数据经常乱码,又降低了数据的传输速度才好些
串口果然不稳定啊
多谢大家帮助
学习了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
学习了
