整个程序就呈现“挂起”状态

[复制链接]
1697|13
 楼主| 宋倩2010 发表于 2014-8-14 14:07 | 显示全部楼层 |阅读模式
我正在用VC开发68013的上位机程序,读写都没问题。其中,读我是用的定时器控制,每隔100ms去读一次USB数据。
     只是有一点很奇怪,只要下位机有数据发过来,我上位机读出来的当然没问题,但是如果下位机没有数据发过来,而我此时又去读了USB端口,那么整个程序就呈现“挂起”状态。
chenho 发表于 2014-8-14 14:09 | 显示全部楼层
关不掉是吧
 楼主| 宋倩2010 发表于 2014-8-14 14:10 | 显示全部楼层
嗯,整个上位机程序呈现“无响应”,关也关不掉。
yufe 发表于 2014-8-14 14:12 | 显示全部楼层
非得拔掉USB数据线啊
 楼主| 宋倩2010 发表于 2014-8-14 14:15 | 显示全部楼层
是啊,我拔掉USB数据线,程序才自动关闭。
gongche 发表于 2014-8-14 14:18 | 显示全部楼层
你得问题是。。。
 楼主| 宋倩2010 发表于 2014-8-14 14:20 | 显示全部楼层
如果USB没有数据发到端口,那么我读出来,会是什么呢?
huwr 发表于 2014-8-14 14:22 | 显示全部楼层
如果没有发送数据,那么USB读取数据就会阻塞在那里。
 楼主| 宋倩2010 发表于 2014-8-14 14:24 | 显示全部楼层
用了读操作,返回的传输数据量应该为0吧?
 楼主| 宋倩2010 发表于 2014-8-14 14:25 | 显示全部楼层
那也不至于整个系统好像是停在那里,等待数据的输入吧?
huanghuac 发表于 2014-8-14 14:29 | 显示全部楼层
为了使上位机不出现什么反应都没有状态,要启动多线程处理,这样就没问题了
冰清玉洁 发表于 2014-8-14 14:31 | 显示全部楼层
在上位机中启用线程当然也是一种方法,在CYAPI中的端点类中你可以设置Timeout这个参数,如果参数为0的话,就一直等待,直到收到数据位置,Timeout是从0到1000的,单位是ms,希望可以帮助到你!
 楼主| 宋倩2010 发表于 2014-8-14 14:33 | 显示全部楼层
嗯,好的,我知道了
李冬发 发表于 2014-8-14 19:22 | 显示全部楼层
使用异步方式的io吧,就不会“挂起”了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

322

主题

3217

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部