串口读取为什么只返回8个字节??
大家好, 我用read读串口的时候,为什么总是每次只返回8个字节,我测试在另一端write20个字节, read返回了3次 (8,8,4)
我想每次read的时候返回指定的字节数,请问需要什么设置吗,请高人指点一下,谢谢了!! :-L 没有人知道吗 本帖最后由 djsxut 于 2013-08-09 11:17 编辑
是不是驱动的问题?读串口代码是什么? read/write串口会保证一直阻塞到全部读出或者写出吗,至少管道不是这样的。 你的read(sock_id, str, max_len)第三个参数是不是设置为8了 没啊, 我指定512 呢,read(sock_id, buf,512) 回复 6# wang_qiao_ying
额..,那我没遇到过,不好意思啊 回复 1# wang_qiao_ying
termios_new.c_cc= 1; //
termios_new.c_cc = 0; //
看看是不是这里设置的问题 回复 1# wang_qiao_ying
你用的什么模式呢?这个和串口设备的缓冲有关,常见的缓冲大小是8bytes,如果以raw mode方式来读的话应该是一次只能读取8bytes这个结果,如果使用ICANON模式的话应该会多一些,但和超时时间等参数设置还是相关的。
页:
[1]