tq2440, linux串口问题
linux的串口驱动程序的read和write好像和一般的串口驱动程序的读写不一样啊,比如:
char buff;
nread=read(serial_fd, buff, 512);
无论串口实际读了多少个字节,这个read函数都返回的是第三个参数传递的数值,比如我给打开的这个串口发送了一个OK,但是nread的值打印出来是512, 而且这个OK被此次读了后它并没有从串口缓冲区消失,而是一直都在缓冲区,循环读取一直都能读到这个OK。
又比如write函数,nwrite=write(serial_fd , "AT\r\n", sizeof("AT\r\n")); nwrite不是4而是5,也就是说连\0也发过去了。。
请问是不是这样? 我现在要用串口2直接接gtm900b,发现在串口程序这里处处有问题。。请问能否告诉我read函数和write函数还有什么特别的地方,或是有没有办法将串口驱动修改一下,改为传统的样子,现在串口这样子让我好难受~~~
这个事裸奔中的吗? 是测试程序里的 sizeof("AT\r\n")=5,所以你实际发送了5个
串口读取结束后,清空下缓冲区试下 清空缓冲区用哪个函数呢? 清空缓冲区:tcflush(fd,TCIFLUSH);
页:
[1]