日期:2014-05-16  浏览次数:20717 次

Linux 串口通信
我编写linux 串口通信程序时发现,当read读串口数据时,两个字节的读就可以,多个字节例如500B 就都不全,就读的9个字节,后面的数据就没有了,这是怎么回事啊?各位大侠帮帮忙分析分析。
部分程序段如下:
      options.c_iflag |=INPCK;
      options.c_iflag &= ~(IXON | IXOFF | IXANY|INLCR|IGNCR|ICRNL);
      options.c_lflag &=~(ICANON | ECHO | ECHOE |ISIG);
      options.c_oflag &=~(OPOST|ONLCR|OCRNL);
      tcflush(fd,TCIFLUSH);
      options.c_cc[VTIME]=50;
      options.c_cc[VMIN]=0;
…………
   nread=read(fd,buffr,200);
   nwrite=write(fdstore,buffr,nread);//就只往fdstore文件中写了9字节数据,打印buffr中数据也只有9字节数据
------解决方案--------------------
这样,你先看系统的状态
cat /proc/tty/driver/XXX             //XXX根据你的系统来
里面有收发的字节数和错误统计,看数字对不对