主题 : 求助 一个串口程序总感觉摇摇欲坠呀! 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 28370
精华: 0
发帖: 34
金钱: 175 两
威望: 35 点
综合积分: 68 分
注册时间: 2010-09-10
最后登录: 2013-08-08
楼主  发表于: 2011-08-15 15:51

 求助 一个串口程序总感觉摇摇欲坠呀!

在这个函数里面随便的加一个循环程序就启动不起来呀!
也无法发送任何信号给单片机 为什么??
void serial_rw()
{
    int i,j;
   unsigned char buff[512];
   unsigned char buff2[7];
   unsigned char ch_bf;
   int count=0;
  
    int  nread;
    int nwrite;
    int ntest_fd;
    int test_write;
    char buff1[3];

     ntest_fd=open("test.txt",O_RDWR);
     if(ntest_fd<0)
  {
    perror("fail to open test_fd");
         exit(1);
}

      
     buff2[0]=0xC7;
     buff2[1]=0x00;
     buff2[2]=0x77;
     buff2[3]=0x09;
     buff2[4]=0x26;
     buff2[5]=0xA6;
     buff2[6]=0x0D;



    nwrite = write(serial_fd,buff2,sizeof(buff2));
    printf("nwrite=%d\n",nwrite);
    while(1)
    {
    
     nwrite = write(serial_fd,buff2,sizeof(buff2));
     printf("nwrite=%d\n",nwrite);
  
     sleep(1);
     memset(buff,0,512);

        if((nread =read(serial_fd,buff,512))>0)
        {

            buff[nread] = '\0';
    
#if 1
                                                  write(ntest_fd,buff,nread);//这段代码随便换一个地方程序就无法启动为什么
#endif
            printf("\nrecv:%d\r\n",nread);
#if 1
            for(i=1;i<nread-2;i++)
            {
              //count++;
              ch_bf+=buff;
              printf("%0x",buff);
               printf(" ");                
            //  count++;  
            // ch_bf+=buff;
    
            }
            printf("ch_bf=%0x,count=%d\n",ch_bf,count);
             printf("\n");
#endif
        }

    
    }
    close(serial_fd);
    
}