VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 782|回复: 2

[求助] VC串口通讯应答问题

[复制链接]
61_avatar_middle
在线会员 发表于 2016-3-28 13:41:25 | 显示全部楼层 |阅读模式
3驿站币
我最近在做单片机串口与VC通讯试验 ,上位机(VC)向单片机发送请求命令后 等待回应 此时有两个判断的量 一个是单片机回送的值 还有一个就是超时的值 ,我现在用窗口函数ONTIME 利用中断程序置标记位表明时间超时,比如在发送前置个标记位 然后发送数据 等待单片机回送应答 然后继续下面的操作,其间超时的话做其它操作。现在的问题是我可以用WHILE语句加在发送后等待 回送应答 和超时 可以这样操作么。如下。


unsigned int i;
unsigned char dat[1024]={0};
ACK=FALSE;
TIMEOUT=FALSE;
dat[0]=0x02;
dat[1]=0x031;//下载命令
dat[2]=0x01;//一帧                                          
dat[3]=0x00;
dat[4]=0x03;
SendData(5,&dat[0]);

SetTimer(2,1000,NULL);//延时50MS 如果没有应答退出
while((TIMEOUT==FALSE))// (ACK==FALSE)&&
{
        ;
}

for(i=0;i<1024;i++)
{
        dat[i]=18;
}
ACK=FALSE;
TIMEOUT=FALSE;
SendData(1024,&dat[0]);
SetTimer(2,2000,NULL);//延时100MS 如果没有应答退出
while((ACK==FALSE)&&(TIMEOUT==FALSE));
MessageBox("发送完毕");





上一篇:哪位大侠可以提供一份连接池的代码?
下一篇:VS2010以上版本的 串口通信 demo
51_avatar_middle
online_admins 发表于 2016-3-28 15:43:32 | 显示全部楼层
可以这样做,不过类似这样的while循环最好放在一个单独的线程中,不要放在主界面线程,不然会卡死界面的
61_avatar_middle
ico_lz  楼主| 发表于 2016-3-29 17:07:26 | 显示全部楼层
Syc 发表于 2016-3-28 15:43
可以这样做,不过类似这样的while循环最好放在一个单独的线程中,不要放在主界面线程,不然会卡死界面的

是的 我就是碰到这样的问题。 我现在在定时器里做处理了。谢谢你的答复。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-4-19 11:33

Powered by Discuz! X3.4

© 2009-2019 cctry.com

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