termio相当于stty命令?

时间:2014-10-14 01:56:51

标签: c++ linux serial-port

我正在编写一个程序,通过串口与一台利用XON的硬件进行通信。为了在代码执行之前使其工作,我必须在命令行(debian)上执行它

stty ixon -F /dev/ttyUSB0 sane raw pass8 -echo -hupcl clocal 115200

如何在c ++中执行等效操作,以便我不必手动执行命令?

这是我到目前为止所得到的内容。写似乎工作正常。读取大多数都很好,但是这里有一些乱码,加上数据似乎被镜像到有时会导致硬件出现可怕的循环。

  //fd is a file descriptor pointing to /dev/ttyUSB0
  struct termios terminalAttributes;
  memset(&terminalAttributes, 0, sizeof(struct termios));

  if(tcgetattr(fd, &terminalAttributes) != 0) cout << "ERROR: Error getting terminalAttributes\n";

  terminalAttributes.c_cflag = B115200 | CS8 | CREAD; 
  terminalAttributes.c_iflag = IGNPAR |  ONLCR | IXON | IXOFF | IXANY;
  terminalAttributes.c_oflag = OPOST;
  terminalAttributes.c_cc[VTIME] = 0;
  terminalAttributes.c_cc[VMIN] = 1;

  tcsetattr(fd, TCSANOW, &terminalAttributes);

0 个答案:

没有答案