linux串口通信收不到数据,linux串口无法接收数据(linunx新手求救)

在linux与windows间进行简单的串行数据的发送接收操作.linux下的程序源码如下,windows用使用串口调试程序收发数据.结果linux发往windows的数据能正常接收,但windows发往linux的数据linux方却无法接收,最奇怪的事是: windows发送的数据windows自己却收到了(linux没有转发收到的数据,串口线的2,3脚也没有短接;在windows上开两个串口调试程序,在COM1,COM2间发送数据进行试验,一切正常)!!请高人指点迷津.

#include    /* Standard input/output definitions */

#include   /* String function definitions */

#include   /* UNIX standard function definitions */

#include    /* File control definitions */

#include    /* Error number definitions */

#include  /* POSIX terminal control definitions */

#include

#include

#include

#include

int main(void)

{

int recnum,fd;

char buf[1024];

recnum=0;

recnumb=0;

fd=open("/dev/ttyS0",O_RDWR|O_NONBLOCK)

if(fd==-1)

{

perror("failed to open com1:");

return 0;

}

ia=write(fd,"the data come from linux!",25);

if(ia0)

break;

}

printf("%sn",buf);

close(fd);

return 0;

}

|

O_NONBLOCK   //它的原因吧,你去掉试一下