我与嵌入式设备通信的唯一方式是串口。默认情况下,嵌入式Linux使用此端口作为终端。如何禁用此终端并使用串行链路传输二进制数据?我听说过像rx和tx这样的命令,但我找不到它们。
我认为我可以从/dev/tty中读取()和写入()内容,但我希望确保没有错误消息或任何干扰我的数据流的东西。
发布于 2009-02-03 14:18:06
您可以使用像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)如果你仍然想要一个性能良好的终端,不要忘了在你的程序结束时恢复设置。
发布于 2009-02-03 12:08:08
你就不能把终端设为raw吗?
看看this tutorial吧。
发布于 2009-02-03 13:26:17
要禁用Linux控制台,您必须更改由引导加载程序创建的Linux命令行: console=/dev/ttyS?收件人: console=null
https://stackoverflow.com/questions/506805
复制相似问题