首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >串行终端上的二进制数据

串行终端上的二进制数据
EN

Stack Overflow用户
提问于 2009-02-03 11:49:30
回答 6查看 15.6K关注 0票数 5

我与嵌入式设备通信的唯一方式是串口。默认情况下,嵌入式Linux使用此端口作为终端。如何禁用此终端并使用串行链路传输二进制数据?我听说过像rx和tx这样的命令,但我找不到它们。

我认为我可以从/dev/tty中读取()和写入()内容,但我希望确保没有错误消息或任何干扰我的数据流的东西。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-02-03 14:18:06

您可以使用像xmodem这样的应用程序在任何终端上传输文件。你所说的串口是终端,还是内核控制台。

如果你的内核不是嘈杂的,那么你可以使用你当前的连接来使xmodem像传输一样。在主机端,您可以使用kermit,它很好,而且是脚本化的。

如果您希望将串行端口设置为原始端口,并且打开了文件描述符ttyfd,则可以使用以下方法:

代码语言:javascript
复制
struct termios tty, orig_tty;

...

if(tcgetattr(ttyfd, &tty) < 0)
{
    // error checking
}
// backup tty, make it raw and apply changes
orig_tty = tty;
cfmakeraw(&tty);
if(tcsetattr(ttyfd, TCSAFLUSH, &tty) < 0)
{
    // error checking
}

...
//end of program or error path :
tcsetattr(ttyfd, TCSAFLUSH, &orig_tty)

如果你仍然想要一个性能良好的终端,不要忘了在你的程序结束时恢复设置。

票数 3
EN

Stack Overflow用户

发布于 2009-02-03 12:08:08

你就不能把终端设为raw吗?

看看this tutorial吧。

票数 3
EN

Stack Overflow用户

发布于 2009-02-03 13:26:17

要禁用Linux控制台,您必须更改由引导加载程序创建的Linux命令行: console=/dev/ttyS?收件人: console=null

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/506805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档