Chinaunix首页 | 论坛 | 博客
  • 博客访问: 951080
  • 博文数量: 104
  • 博客积分: 1919
  • 博客等级: 上尉
  • 技术积分: 1910
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-21 16:33
文章分类
文章存档

2016年(4)

2015年(1)

2014年(6)

2013年(16)

2012年(27)

2011年(49)

2010年(1)

分类: LINUX

2011-12-12 18:47:50

发送文件:
 int main(int argc, char *argv[])
     if((filep=fopen(argv[1],"r+b"))==NULL)
     {  
         perror("open file error!\n");
         exit(EXIT_FAILURE);
     }
     fd=Com_Inital(0,1152);     //串口初始化
     while(!feof(filep))
     {    
         rsize=fread(sbuf,1,max_buffer_size,filep);
         if(rsize>0)
         {
            retv=write(fd,sbuf,rsize);  /*发数据*/
            if(retv!=rsize)
            {
               perror("write");
            }
            printf("the number of charater sent is %d\n",retv);
         }
     }
     close(fd);
}
 
串口接收文件:
 
int readDataFun (int fd, char *pp, int *iLen)
{
    char ch[1024];
    int i;
 
    memset (ch, 0, sizeof (ch));
    if ((*iLen = read (fd, ch, 50)) > 0)
    {
        memcpy(pp,ch,*iLen);
        return *iLen;
    }
    return 0;
}
 
main()
{
    int fd;
    int num = 0;
    char read_buf[50] = {0};
    int iLen;
    int ncount = 0;
    FILE *fp;
    int signo;
 
    fd_gpio = open("/dev/gpio",O_RDWR|O_NONBLOCK);
    if(fd_gpio<0)
    {
        printf("Open gpio device error\n");
        exit(0);
    }
 
    if((fp=fopen("serialdata.db","wb"))==NULL)
    {  
        perror("can not open/create file serialdata.");
        exit(EXIT_FAILURE);
    }
    fd = serial_init();      //串口初始化
 
    while(1)
    {  
        if((num = readDataFun(fd_uart[UART_PORT], read_buf, &iLen))>0)
        {
            fwrite(read_buf,num,1,fp);   
        }
    }
 
    close(fd_uart[UART_PORT]);
    if(fclose(fp)<0)
        perror("closing file serialdata fail!");
    exit(EXIT_SUCCESS);
}
阅读(7530) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~