我正在尝试使用 QextSerialPort 与 Arduino Diecimila 板进行串行连接。每次我调用 port->open() 时,我的应用程序都会挂起。我认为发生这种情况的原因是每次与它建立串行连接时,Arduino 板都会自行重置。有一种方法可以不重置此处描述的电路板,但我不知道如何让 QextSerialPort 做到这一点。我只能在端口打开后将 DTR 设置为 false,这并没有多大帮助,因为此时主板已经自行重置。
连接代码如下所示:
port = new QextSerialPort("/dev/tty.usbserial-A4001uwj");
port->open(QIODevice::ReadWrite);
port->setBaudRate(BAUD9600);
port->setFlowControl(FLOW_OFF);
port->setParity(PAR_NONE);
port->setDataBits(DATA_8);
port->setStopBits(STOP_1);
port->setDtr(false);
port->setRts(false);
关于如何完成这项工作的任何想法。如果有人知道另一个库可以做到这一点,我不一定需要使用 QextSerialPort。
我是 C++ 和 Qt 的新手。
更新:我注意到,如果我在运行上述代码之前运行一个连接到同一端口(使用 pySerial)的 python 脚本,一切正常。