串口通信问题(linux和windows互传文件)?

onlyf 2004-12-21 04:13:18
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);
谢谢!
...全文
271 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
onlyf 2004-12-23
  • 打赏
  • 举报
回复
我是先发文件长度,再把文件读到buf中一个一个的发送的,这样是不是不行?
ckc 2004-12-23
  • 打赏
  • 举报
回复
硬件流控是在双方速度差异很大时用的,比如计算机和modem,你这种情况完全没有必要
不明白你的程序是怎么编的,你不会是直接把这巨大的文件一次性直接发过去吧?
应该把数据按块传输,块头尾加上标记,加上校验
这样就不会漏数据了
onlyf 2004-12-23
  • 打赏
  • 举报
回复
我的串口设置基本能工作,只是在传大文件时,最后传的几K字节会接收不到!
串口是怎么处理缓存区满的情况的?
接收端若是没有收好,怎么通知发送端?
还有我如果设置RTX/CTX硬件流控制时,发送和接收会很慢,而且发送一次就停住了,这是怎么回事啊!
请大虾指点!
onlyf 2004-12-23
  • 打赏
  • 举报
回复
我是在虚拟机上用的,我用其他linux试试机器!
xingwl 2004-12-23
  • 打赏
  • 举报
回复
你是不是使用虚拟机在开发,使用虚拟机是有这个问题
ltbird 2004-12-23
  • 打赏
  • 举报
回复
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
onlyf 2004-12-22
  • 打赏
  • 举报
回复
怎么没人回啊,200分就乱给了!
onlyf 2004-12-21
  • 打赏
  • 举报
回复
现在的情况是自己编程实现!
tengulre 2004-12-21
  • 打赏
  • 举报
回复
Linux下用minicom
sunvin 2004-12-21
  • 打赏
  • 举报
回复
你的延时可能有问题,缓冲区被冲掉的问题,我觉得
onlyf 2004-12-21
  • 打赏
  • 举报
回复
不能使用第三方工具;
要用编程来自己实现串口通信。
hbcb 2004-12-21
  • 打赏
  • 举报
回复
我用超级终端在UNIX和windows间传递文本文件

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧