请教串口通信中容易死机的问题
请教斑竹及各位高手,我做的是实时采集编码器发送的数据,通过串口进行。编码器的数据更新率(最大发送速度)达1K/S。我现在做的是用串口事件(InstallComCallback)触发的方式来读取。因为编码器的数据格式是五个字节,所以我串口事件触发函数每次读进来五个字节进行处理,可是,这样子很容易造成死机。请教斑竹跟各位高手,有什么好的解决办法吗?
1、是不是这样就必须用多线程?
2、如果用多线程的话怎么用好,那位大哥有多线程数据采集的例子能给发一下吗?
3、多线程里能不能再用InstallComCallback来读取数据?
因为是初学者,还望各位大哥多多指点。
在此致谢! 串口通讯的核心是双方的通讯协议(包括通讯速率、帧格式、握手方式、校验和等),理解了这些很容易处理!
但是所有这些你都未提!我当然也不清楚为什么死机!
而且,根本不需要用多线程,没必要搞那么复杂!
还是把你的工程上传吧! 另外,千万要说明通讯协议是什么! 谢谢
现在想用 LabWindows CVI 中的 MSCom空间来做串口通信, 版主有这方面的例子吗?
可以发一份让小弟学习吗?
谢谢 这个程序是没有握手的,就是编码器不断的发数据到串口,通信速率为9600~57600可选,编码器一次发五个字节的数据,前两个字节为字头,后三个字节为数据。没有校验位,结束位1位。 谢谢
现在想用 LabWindows CVI 中的 MSCom空间来做串口通信, 版主有这方面的例子吗?
可以发一份让小弟学习吗?
谢谢
cyc08 发表于 2009-3-10 21:48 http://www.cpubbs.com/bbs/images/common/back.gif
CVI中已经提供了一个RS232类库,没有MSCom控件! 既然是程序问题,你还是把源码发上来吧!否则,这样讨论很吃力! 谢谢大哥 程序上传了 您帮忙看看 能有什么解决的办法。谢谢啦 麻烦大哥看看解决的方法谢谢啦 各位大哥都看看看,帮忙解决一下,谢谢啦。 刚才粗略看了一下你的程序,一个明显的错误是你反复安装串口回调函数!
串口回调函数只能安装一次(在串口配置完,且未进行串口操作前就应安装)!
另外,“编码器一次发五个字节的数据,前两个字节为字头,后三个字节为数据”——字头是什么?代表什么意义?
数据是什么类型的?这三个字节具体代表哪几个变量?如何排列的? 谢谢 版主大哥
页:
[1]