|
以下代码来自天嵌提供的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)循环是不是测试电脑发送数据到开发板是否正确,根本不是开发板发数据给电脑。这里我输入数据,串口监视软件有显示开发板接收到。
这几天搞这个串口通信搞的头大,有懂的大哥,帮忙解下惑~~跪谢! |
|