• 4538阅读
  • 0回复

串口读写问题,请高手指教 [复制链接]

上一主题 下一主题
离线linchen0633
 
只看楼主 倒序阅读 楼主  发表于: 2010-09-01
— 本帖被 XChinux 执行加亮操作(2010-09-03) —
如下代码中,fd为一个已经打开的串口,可以执行写入操作,但 if ( read(fd, Abuf, BUF_SIZE-1) > 0 )以后的所有语句均不执行,请高手指教!
int ATLog(int fd)
{
    int re,len;
    char buf[BUF_SIZE];
    memset(buf, 0x00, BUF_SIZE);
    strcpy(buf, DATA_REQ);
    len=strlen(buf);
   re=write(fd,buf,len);
    if(re<0)
    {
        fprintf(stdout, "send DATA_REQ error!\n");
        return -1;
    }
    fprintf(stdout, "send DATA_REQ Success!\nDATA_REQ=%s\n",buf);

   // usleep(WAIT_TIME);
    sleep(1);
    char Abuf[BUF_SIZE];
    memset(Abuf, 0x00, BUF_SIZE);
    //fprintf(stdout, "send Success!\nDATA_REQ=%s\n",buf);

        if ( read(fd, Abuf, BUF_SIZE-1) > 0 )
        {
            fprintf(stdout, "send Success!\nDATA_REQ=%s\n",buf);
            if(strstr(Abuf,DATA_S))
            {
                fprintf(stdout,"GOODCONFIG!%s",Abuf);
                return 1;
            }
            else
            {
                if(strstr(Abuf,"OK"))
                {
                    fprintf(stdout,"zhen de shi ni a !%s",Abuf);
                }
                else
                {
                    fprintf(stdout,"WHYCNF!%s",Abuf);

                }

            }
            fprintf(stdout,"buf=%s",Abuf);
        }
        else
        {
            fprintf(stdout, "else!\nDATA_REQ=%s\n",buf);
            fprintf(stdout,"kong!%s",Abuf);
        }
        fprintf(stdout, "kan bu dong!\nDATA_REQ=%s\n",buf);
    return -1;
}
快速回复
限100 字节
 
上一个 下一个