还是看我的回答=>>
//超时处理 在1ms中断中有 Count1ms--;
//当Count1ms减到0是无数据接收返回0
while (Count1ms)
{
if (CommRecBufferTail1!=CommRecBufferHead1) break; // 有数据接收 中止等待
}
if (Count1ms==0) return 0;
// 数据接收采用循环缓冲区 CommRecBuffer1[RECMAXSIZE1];
// CommRecBufferHead1 为头指针,应用程序用(消费指针)
// CommRecBufferTail1 为尾指针,接收用(生产指针)
// 取接收到的数据(消费一个数据)
*ch=CommRecBuffer1[CommRecBufferHead1];
CommRecBufferHead1++;
//循环缓冲处理
if (CommRecBufferHead1==DB_RECMAXSIZE1)
{
CommRecBufferHead1=0;
}
if (CommRecBufferTail1==CommRecBufferHead1)
FlagRecComm1=0;
return 1;
发表时间:2003年7月30日8:42:37