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

关于串口接收数据实时显示和线程安全队列接收数据显示

[复制链接]
发表于 2018-8-28 09:48:13 | 显示全部楼层 |阅读模式
本帖最后由 ssmyjiob 于 2019-1-21 17:28 编辑

实现要求:
              出现问题:①、发现串口读取的速度太快,,写入安全队列的速度也很快,但是另一个线程中的安全队列数据读取太慢,所以显示的解析结果有延时。
     针对两种方案,我选择了第二种方案,但是对于发现的问题有没有人遇见同样的问题的,予以指导,谢谢!


发表于 2018-8-28 14:52:58 | 显示全部楼层
方案1加一个界面处理的函数,那个函数叫什么一下不记得,好像在面板里面

点评

ProcessSystemEvents(); ProcessDrawEvents ();这两个吧  发表于 2018-8-28 15:45
回复 顶

使用道具 举报

发表于 2018-8-28 14:53:55 | 显示全部楼层
方案2这种生产消费者模式应该是很合理的,只是为什么会慢这个要具体看程序
回复 顶

使用道具 举报

 楼主| 发表于 2018-8-28 15:44:56 | 显示全部楼层
cvifan 发表于 2018-8-28 14:52
方案1加一个界面处理的函数,那个函数叫什么一下不记得,好像在面板里面

                ProcessSystemEvents();
                ProcessDrawEvents ();

回复 顶

使用道具 举报

 楼主| 发表于 2018-8-28 15:58:43 | 显示全部楼层
cvifan 发表于 2018-8-28 14:53
方案2这种生产消费者模式应该是很合理的,只是为什么会慢这个要具体看程序

慢的情况我测试了一下,当下位机每50ms发送一包数据,一包19个字节的时候,不管是安全队列读写还数据处理显示都能正常运行,没有问题。当发送时间小于50ms的时候,串口可以正常及时接收到数据,然后写入安全队列,另一个线程在while(flag)循环里面一直读取安全队列的数据,发现读取完成后处理显示跟不上串口接收的脚步,初步怀疑是安全队列读写时间没有设置正确,最后设置为1ms的时候,仍然发现显示的速度慢于串口接收,不能完全达到实时显示。所以推测是cvi本身已经达到接收的极性范围。因为同样的下位机程序使用目前比较常用的串口调试助手也发现能够实现数据的接收但是在对界面控件操作的时候也出现卡顿现象。目前我用的下位机上传模式是:上位机发送一条指令,下位机一直快速传输数据。所以上位机需要能够快速及时的接收显示数据结果。不知道我分析的对与不对,如果由同样类似问的人,你是怎么解决的,谢谢指导分享,共同进步。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

 楼主| 发表于 2018-8-31 10:57:11 | 显示全部楼层
回复 顶

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-28 03:11 , Processed in 0.044846 second(s), 12 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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