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

串口延时数据清除

[复制链接]
发表于 2007-1-31 10:19:12 | 显示全部楼层 |阅读模式
请教一下大家:怎么样清除串口中等待时间数据。如下字符。
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
 楼主| 发表于 2007-1-31 10:23:37 | 显示全部楼层
我的意思是指,在串口中不接收此些等待时间字符。
回复 顶

使用道具 举报

发表于 2007-1-31 11:42:14 | 显示全部楼层
你等待时不读取串口不就可以了吗?再要读时将缓冲区清空后再读啊
回复 顶

使用道具 举报

 楼主| 发表于 2007-1-31 12:57:53 | 显示全部楼层
谢谢ricken的回复。

   怎么可以状态串口是在等待状态呢?LV中有没有相关的VI呢,或是什么事件可以对些等待进行判断的?谢谢!
回复 顶

使用道具 举报

发表于 2007-1-31 13:48:02 | 显示全部楼层
我不知道你读取串口是如何安排的,你可以发送一个命令到串口,然后读取指定数量的数据.另一种方式是定时读取串口的数据,每次读取时对回来的数据做判断,只用合适的数据,其他的舍掉不保留.
回复 顶

使用道具 举报

 楼主| 发表于 2007-1-31 14:00:56 | 显示全部楼层
我的对BUFFER内的内容进行查询,如果里面有数据的话就读取,没有就不读取了。
我现在主要问题是在给下位机发送命令后,下位机执行相应的命令会有一个时间待的问题,然后会产生上在提到的那些字符,所以不需要他们。
我自己做的这个程序会有这些字符收到,但是用WINDOWS自带的HYPERTERMINAL运行相同的命令后却不会显示出些字符,所以现在不知道如果处理,现在急得晕呀。
回复 顶

使用道具 举报

发表于 2007-1-31 15:46:48 | 显示全部楼层
你可以做个CHECK动作,接收到这些字符丢掉就好了,
回复 顶

使用道具 举报

 楼主| 发表于 2007-1-31 16:13:53 | 显示全部楼层
lgh269兄,谢谢你的回复。

   你前面回了我一个关于设置LF的问题,我在用HYPERTERMINAL的时候如果不设置加入LF的话串口回显的时候就不会有这些字符,但如果加入此LF的话就会显示出这此符号,我现在想要做的就是在LV中不加入此LF时,回显的数据中也不包含此些数据。
回复 顶

使用道具 举报

发表于 2007-2-1 10:36:03 | 显示全部楼层
那就要看你的上下位机的通信协议是如何规定 的了.你可以发送命令时只读取指定数量的数据.或是说当你的buffer中有一定的数据时再进行触发读取啊,可以对buffer中的数据先进行判断,不是想要的就丢掉.
回复 顶

使用道具 举报

 楼主| 发表于 2007-2-1 16:53:33 | 显示全部楼层
如果这样的话,我要对太多的字符进行check了。
等待时的字符有:- \ / |  .不是对这些收到的字符进行一一检查吧。
回复 顶

使用道具 举报

发表于 2007-2-2 10:46:58 | 显示全部楼层
那就还是要看你的通信协议了,你可以定时读取啊,在发送读取命令前先清空缓冲区里的数据,再读取指定数量的数据,通信协议中应规定回来的数据格式吧,从回来的数据中选出你想要的数据就可以了.如果你是一直不停的读那就难办了哦.只好读取一个字符就判断.

下位机执行相应的命令会有一个时间待的问题,然后会产生上在提到的那些字符

我在做上位机与下位机通信时是这样处理的,每发送一次命令,下位机都会送回来相同格式的数据,也就是说这个格式是下位机在设计时就已规定好的,不可能每次都会变的.然后从读回来的数据里选出自己想要的.
因为是采用串行通信,所以每次下位机都是传回数据后上位机才可以发下一个命令的.下位机执行命令肯定是需要时间的,但是上位机发送的同一命令,下位机返回的数据格式应该都是一样的,不可能每次都是变化的,要是这样的话就是你的下位机设计有问题.
回复 顶

使用道具 举报

 楼主| 发表于 2007-2-2 10:58:01 | 显示全部楼层
谢谢ricken兄的回复,但我的下位机的数据是会变化的,随着你输入给串口不同的命令,返回的也不同的数据,根本不确定。如果对数据进限制性的读取这样会很慢的,因为发送一个命令后返回的数据量比较大,如果像上面提到的等待时间字符处理那要发很多时间。

我想再问一下,如果对|-\/有没有可以以这些字符进行扫描,可以使用vi中的scan string for token.vi吗? 谢谢!
回复 顶

使用道具 举报

发表于 2007-2-2 13:38:31 | 显示全部楼层
我认为你还是针对每一个命令写一个subvi吧,把处理的过程封装起来,用的时候再调用就可以了.按道理你的上位机发送完一个命令后,下位机是按照通信协议返回数据的,即使是等待过程中返回的数据也是指定的格式,并不是乱的.
不过你可以试一下你所说的那个VI,还有就是看看有没有高手吧.
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-30 05:17 , Processed in 0.044240 second(s), 6 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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