Linux改变串行奇偶校验而不影响DTR线

时间:2017-02-17 12:59:48

标签: linux serial-port termios

我正在尝试将Linux上的开放串口从8E1更改为8N1而不更改DTR流控制线。 DTR连接到STM32的复位引脚,RTS连接到Boot0,允许我运行内置的引导加载程序,并在RAM中上传和运行代码。问题是引导加载程序是8E1,上传代码是8N1。我用来更改奇偶校验的代码片段是:

tcgetattr(fd, &settings);
settings.c_cflag &= ~PARENB;
settings.c_iflag &= ~INPCK;
tcsetattr(fd, TCSADRAIN, &settings);

但是这会导致DTR线路重置STM32。当我想要改变DTR线时我使用的是ioctl(fd,TIOCMSET和& status),我认为tcsetattr()应该对DTR没有影响。作为测试,我尝试了tcgetattr()和tcsetattr()调用而不更改任何数据,但它仍然失败。

我是否忽略了某些事情,或者这可能是一个我无法在正常程序中编码的驱动程序问题?

0 个答案:

没有答案