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

我想我可以从/dev/tty中读取和写入内容,但我想确保没有错误消息或数据流有任何困惑。

最佳答案

您可以使用xmodem之类的应用程序通过任何终端传输文件。是您在终端上说的串行端口,还是内核控制台。

如果您的内核不嘈杂,则可以使用当前连接来进行xmodem之类的传输。在主机方面,您可以使用kermit,它很好且可编写脚本。

如果您想将串行端口设置为原始端口,并且已打开文件描述符ttyfd,
这是一种方法:

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)

如果您仍然想要一个性能良好的终端,请不要忘记在程序末尾恢复设置。

关于linux - 串行终端上的二进制数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/506805/

10-15 16:59