cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 3604|回复: 6

CVI串口通信问题 急!!

[复制链接]
发表于 2007-9-26 22:48:20 | 显示全部楼层 |阅读模式
我现在利用CVI写一个运行再PC上的通信程序与列车网关通过串口进行通信.网关每隔0.08秒发送一个180字节的数据,PC程序在收到数据后,判断标志位(第一位为0x22,第二位为0x55,第179位位0x77,第180位为校检和位)是否正确,正确则保存在180字节的数组Gnetrecbuf中,并利用OpenComConfig函数至校检位为3(标志校检),并发送地址数据0x22,再利用OpenComConfig函数至校检位为4(空校检),并发送50字节的消息数据给网关.事件是通过调用InstallComCallback函数每接受到180个字节后就触发.
     现在就是如果只接受数据,PC机能够正确接受,但如果接受数据并判断180个字节的正确性后,发送地址数据和消息数据,接受就会发生错误,因为OpenComconfig函数每调用一次,就要关闭一次串口,再重新打开,导致串口接受混乱了,请问大家有没有不关闭串口而改变校检属性的函数.还有就是通信的时候,控制面板会死掉,反映迟钝,利用多线程还是存在这样的问题.

[ 本帖最后由 shanphill 于 2007-9-26 22:57 编辑 ]
发表于 2007-9-27 18:21:27 | 显示全部楼层
你所说的只接收数据,PC机就能够正确接收,是指的同样也需要两次调用OpenComconfig函数吗
这样的话 肯定是你在处理数据的时候 程序运行的时间超过了0.08秒.
我觉得你要找改变parity属性的函数没有必要,估计也没有,你只需要在重启串口的时候,把串口里的数据(包括输入输出)清空就是了.因为列车网关端在不停地发送数据.允许微小的丢失数据.
清空串口的函数是ioctl (fd,FIOFLUSH,0); 这个用在列车网关端运行吧.
至于通信的问题.多线程肯定是能解决问题的.只是你在用多线程的时候可能把CPU的时间没有让出来让主线程使用. ProcessSystemEvents(); Delay(1.0-exeTime);
个人观点 希望对你有所帮助
 楼主| 发表于 2007-9-27 18:56:38 | 显示全部楼层
谢谢你的回答,现在就是不发数据,只调用OpenComConfig函数,数据一样接受出错,问NI工作人员,说需要调用NI-VISA 函数库,可以不关闭串口 ,直接更改串口属性,有哪位兄弟姐妹用过NI-VISA函数吗?
还有,那个让CPU的时间给主线程,具体操作是怎么样的啊? 谢谢 !!!!
发表于 2007-9-27 20:15:52 | 显示全部楼层
就是先计算一下该线程的执行时间 exetime
然后你定一个刷新的时间比如 1秒

把(1-exetime)这个线程不需要的时间让给其它线程使用
 楼主| 发表于 2007-9-27 20:30:49 | 显示全部楼层
hehuxun 谢谢 因为线程是和网关实时通信,所以没有一个确定的EXETIME啊,所以也不知道怎么设
  还有 大哥们谁知道NI-VISA在CVI中调控串口配置怎么使用吗? 需要一些什么样的步骤,谢谢!!!!!!
发表于 2007-9-29 18:22:19 | 显示全部楼层
这个exetime 是计算线程函数的执行时间的
先调用Timer()得到开始时间,函数执行完后再调用Timer(),两次得到的时间一减就得到了该线程执行的时间
发表于 2007-11-29 17:22:50 | 显示全部楼层
要先安装NI-VISA驱动,然后就可以用CVI工具库里的VISA库了,基本顺序是用viOpenDefaultRM()建立与VISA默认资源管理器的通话,用viFindRsrc()查找设备,用viOpen()打开找到的设备,然后就可以操作设备了...具体可参考CVI的帮助文件和例程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-22 11:07 , Processed in 0.900587 second(s), 8 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表