请教串行通讯!!!
1.本人是在自己电脑主机上的COM1口和COM2口之间进行串行通讯试验,先用串口精灵软件调试验证COM1口和COM2口工作是正常的,调用lv中自带的“两个端口之间的读和写”这个串行通讯例子,想实现在一个程序界面中一个串口发送数据,同时另一个串口接收数据这样的功能,设置好了要发送的字符串,按下run Continusly,程序界面弹出“在操作完成前超时终止”错误,反复用串口精灵软件验证,串口发送功能正常,错误出现在串口接收功能上,也就是读串口的内容上,请问这是怎么回事啊?该怎么解决?我就想实现在一个程序界面中一个串口连续发送数据,同时另一个串口连续接收数据,谢谢大家!!!2.
还有一个问题就是“配置VISA串行端口”这个函数中奇偶校验的那五种选择,一般都默认选择为None,我想问一下,如果我想实现奇校验的话,是不是只用选中Even就可以了呢?还是在程序中还要编程来实现奇校验呢?为什么在一般情况下选择Even或者Odd,程序就会出现错误呢?请各位高人指教!!谢谢!! 1.你在READ时是读取固定的长度的数据还是用属性节点呢
2.这个是对数据的一种校验,一般是由硬件支持的
串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符'E',其各位为:
0100,0101=45H
D7 D0
由于干扰,可能使位变为1,这种情况,我们称为出现了"误码"。我们把如何发现传输中的错误,叫"检错"。发现错误后,如何消除错误,叫"纠错"。
最简单的检错方法是"奇偶校验",即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。
奇校验:所有传送的数位(含字符的各数位和校验位)中,"1"的个数为奇数,如:
1 0110,0101
0 0110,0001
偶校验:所有传送的数位(含字符的各数位和校验位)中,"1"的个数为偶数,如:
1 0100,0101
0 0100,0001
奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。
有些检错方法,具有自动纠错能力。如循环冗余码(CRC)检错等。
[ 本帖最后由 lgh269 于 2007-1-29 19:01 编辑 ] 谢谢版主的详细的解答,我贴上我的程序,您帮忙看看吧!
对于奇偶校验的问题,我只想知道什么时候选择Even,什么时候选择用Odd,一般情况下我们都选择用None,也就是说版主能不能给一个简单的例子让我看一看怎样用lv在串行通讯中实现奇偶校验的,万分感谢!!! 麻烦各位版主帮小弟看看我的程序为什么在双端口通讯的时候总会出现数据桢错误和超时现象,谢谢了!!! 你实际中用这个程式吗?
LV是多线程并行运行系统,串口怎么能同时读写呢,肯定出错
页:
[1]