打印

MFC编写串口,怎么实现超时?

[复制链接]
3045|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
myfaith|  楼主 | 2008-10-4 19:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如发送一个数据后,在预定的时间内反复检测是否接收到期望个数据,如果这样写,在OnTime函数中对bTimerOut取反,然后在发送函数里检测:
    while(bTimerOut)
    {
    //Sleep(200);
        if(RxCount>RxLen)
        {
            KillTimer(1); //停止定时
            bTimerOut = true;
            return true;
        }
    }
不行啊,会死掉.
可能要用多线程,另外新建一个专门启动SetTimer的线程,这个线程里该完成哪些工作呢?新线程不做对话框可以使用SetTimer定时器吗?怎么响应WM_TIMER消息呢?

相关帖子

沙发
李冬发| | 2008-10-4 22:28 | 只看该作者

在MSDN的例子里好象有个CSerialPort的东西,自己看看

使用特权

评论回复
板凳
computer00| | 2008-10-6 09:54 | 只看该作者

3楼说得对,定时器本来就是周期性调用的,你不要在里面死

进去查询一下就OK了。


如果响应速度要求高一些的话,也可以考虑多线程,单独开一个读数据的线程,等待数据接收就可以了。

使用特权

评论回复
地板
Ice_River| | 2008-10-6 11:53 | 只看该作者

可以参考龚建伟的 书籍!

使用特权

评论回复
5
myfaith|  楼主 | 2008-10-6 22:23 | 只看该作者

这是个按纽的响应代码,如过是if那不是判断一次就没了

我看的就是龚建伟的串口书,个人感觉不好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

468

帖子

0

粉丝