C串口程序使用键盘和显示器代替串口/ dev / ttyUSBX

时间:2014-06-23 11:00:43

标签: c linux serial-port tty

我正在尝试编写一个接受键盘输入的程序,并将输出放在屏幕上,但就好像它是一个串行端口。我不确定这是否可行。我当前的串行端口代码是:

int fd;
char *portname;
char buf[255];
struct termios tty;

portname = "/dev/ttyUSB0";

// opening serial port
fd = open(portname, O_RDWR | O_NOCTYY | O_SYNC );

//writing to serial port
write (fd, "hello!\n", 7);

//Reading from serial port
read (fd, buf, 255)

那么,有可能不是将portname设置为/ dev / ttyUSB0而是将其设置为其他东西(例如/ dev / stdin?)然后获得完全相同的UART功能,但键盘设置为输入,屏幕作为输出?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

UNIX / Linux设置stdin(fd 0),stdout(fd 1)和stderr(fd 2)已经打开终端(无论是带有真实硬件终端,虚拟控制台还是图形终端的串行线)你的键盘和屏幕都是连接到。它可用于termio控制,并且作为特殊设备文件名/dev/tty,termios例程termios(3) man page对已经打开的fild描述符进行操作,这允许获取终端驱动程序属性,关闭规范模式以及稍后重置程序结束时的值。

您只需正常读取/写入POSIX中的所有文件,无论是串行线路,磁盘,终端仿真器是否被抽象出来,都是由OS内核进行I / O的进程。 / p>