QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 551|回复: 0

高手进看这个问题

[复制链接]
发表于 2004-5-17 11:54:29 | 显示全部楼层 |阅读模式
我在程序中用到 read函数,从串行口上读数据,测试花费的时间为100ms.实际上串行口以9600速度工作时.一个字节所花的时间不超过10ms.如何样改造,使得read响应变快.

uchar receive_DATA()
{
    uchar buffer[3];
    fd_set readfs;
    timeout.tv_sec=0;
    timeout.tv_usec=10;
   
   // printf("receive_DATA\r\n");
    FD_ZERO(&readfs);
    FD_SET(commDevice,&readfs);
    if(select(FD_SETSIZE, &readfs, 0, 0, &timeout)<0)
    {
     printf("receive_DATA select error\r\n");
   //  newdata=0;
     return 1;
    }
    if(FD_ISSET(commDevice,&readfs))
    {
     read(commDevice,buffer,1);
     printf("receive_DATA=0x%x\r\n",buffer[0]);
     return buffer[0];
     }
    else
    {
     printf("receive_DATA timeout \r\n");
    // newdata=0;
     return 1;
    }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 08:55 , Processed in 0.041596 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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