当前位置: 技术问答>linux和unix
串口通信问题(linux和windows互传文件)?
来源: 互联网 发布时间:2015-08-27
本文导语: linux与windows串口通信,传字符串和结构没有问题,但是传超过一定大小(例如5K以上)就有问题,请问这是什么原因,串口通信发送文件有什么注意事项? linux端的串口设置是: struct termios options; ...
linux与windows串口通信,传字符串和结构没有问题,但是传超过一定大小(例如5K以上)就有问题,请问这是什么原因,串口通信发送文件有什么注意事项?
linux端的串口设置是:
struct termios options;
tcflush(fd, TCIOFLUSH);
bzero(&options, sizeof(struct termios));
options.c_iflag |= (ICRNL | IXON | IXOFF | IMAXBEL);
options.c_oflag |= ONLCR;
options.c_cflag |= (CS8 | HUPCL | CLOCAL | CREAD);
options.c_lflag |= (IEXTEN | ECHOK | ECHOKE | ECHOCTL);
options.c_cc[VTIME] = 0;
options.c_cc[VMIN] = 1;
cfsetispeed(&options, B115200);
cfsetospeed(&options, B115200);
谢谢!
linux端的串口设置是:
struct termios options;
tcflush(fd, TCIOFLUSH);
bzero(&options, sizeof(struct termios));
options.c_iflag |= (ICRNL | IXON | IXOFF | IMAXBEL);
options.c_oflag |= ONLCR;
options.c_cflag |= (CS8 | HUPCL | CLOCAL | CREAD);
options.c_lflag |= (IEXTEN | ECHOK | ECHOKE | ECHOCTL);
options.c_cc[VTIME] = 0;
options.c_cc[VMIN] = 1;
cfsetispeed(&options, B115200);
cfsetospeed(&options, B115200);
谢谢!
|
你是不是使用虚拟机在开发,使用虚拟机是有这个问题
|
你的延时可能有问题,缓冲区被冲掉的问题,我觉得
|
硬件流控是在双方速度差异很大时用的,比如计算机和modem,你这种情况完全没有必要
不明白你的程序是怎么编的,你不会是直接把这巨大的文件一次性直接发过去吧?
应该把数据按块传输,块头尾加上标记,加上校验
这样就不会漏数据了
不明白你的程序是怎么编的,你不会是直接把这巨大的文件一次性直接发过去吧?
应该把数据按块传输,块头尾加上标记,加上校验
这样就不会漏数据了
|
generally,data transmitted via lines should divided into several parts with
lower size.
u should define some private protocol if u want to control communication effectively
lower size.
u should define some private protocol if u want to control communication effectively
|
我用超级终端在UNIX和windows间传递文本文件
|
Linux下用minicom