| 
 | 
 
以下代码来自天嵌提供的Serial_Test.c部分内容 
void serial_rw() 
{ 
        int i; 
        char buff[512]; 
        char buff2[] = "hello,TQ2440!\n"; 
        int nread,nwrite; 
 
        nwrite = write(serial_fd,buff2,sizeof(buff2)); 
                printf("nwrite=%d\n",nwrite); 
        while(1) 
        { 
                if((nread = read(serial_fd,buff,512))>0) 
                {  
                        buff[nread] = '\0'; 
#if 0        //调用这段代码可以实现回显,如果配合上面的回显,就会出现回显两次的情况。 
                        write(serial_fd,buff,nread); 
#endif 
                        printf("\nrecv:%d\n",nread); 
#if 0 
                        for(i=0;i<nread;i++) 
                        { 
                                printf("%c",buff); 
                        } 
                        printf("\n"); 
#else 
                        printf("%s",buff); 
                        printf("\n"); 
#endif 
                } 
        } 
 
        close(serial_fd); 
 
} 
 
 
红色的程序部分运行完显示nwrite=15。但是串口监视软件显示电脑没有接收到buff2。 
 
还个问题是,while(1)循环是不是测试电脑发送数据到开发板是否正确,根本不是开发板发数据给电脑。这里我输入数据,串口监视软件有显示开发板接收到。 
 
这几天搞这个串口通信搞的头大,有懂的大哥,帮忙解下惑~~跪谢! |   
 
 
 
 |