与嵌入式设备通信的唯一方法是串行端口。默认情况下,嵌入式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)
如果您仍然想要运行良好的终端,请不要忘记在程序末尾恢复设置。