串口通讯问题,请教高手为什么发送10怎么会得到0D 0A呢?

huyoujun 2005-10-17 01:45:55
unsigned char cmd[128]={10,10,10,10};
slen=write(icom,cmd,4);
我用以上代码向icom串口发送数据,通过串口调试程序(16进制显示)接收到的却是0D 0A 0D 0A 0D 0A 0D 0A
为什么每个10都会多出一个0D来呢?
在线等待高手们的解答.........
...全文
430 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huyoujun 2005-10-17
  • 打赏
  • 举报
回复
struct termios Opt;
tcgetattr(fd, &Opt);
Opt.c_oflag &= ~OPOST;
正解
这个参数设完后,系统就不会把10当成\r\n了.
谢谢大家给我的提示
doway 2005-10-17
  • 打赏
  • 举报
回复
10 就是 0A 也就是 \n,
\n 就是换行符,而换行符有时用两个字符 \r\n 表示。
fishmans 2005-10-17
  • 打赏
  • 举报
回复
0D十进制就是13,就是个回车符罗
huyoujun 2005-10-17
  • 打赏
  • 举报
回复
不懂你说的意思
doway 2005-10-17
  • 打赏
  • 举报
回复
应该与写入部分的代码有关系,看起来象是将 \n 转换成 \r\n 了。
huyoujun 2005-10-17
  • 打赏
  • 举报
回复
对了,这是在linux下的程序
huyoujun 2005-10-17
  • 打赏
  • 举报
回复
怎么解决这个问题呢?

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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