我正在尝试使用QextSerialPort与Arduino Diecimila板进行串行连接。我的应用程序每次调用port->open()时都会挂起。我认为发生这种情况的原因是因为Arduino板在每次建立串行连接时都会自动重置。有一种方法可以不让板重置描述为here,但我不知道如何让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的新手。
更新:我注意到,如果在运行上述代码之前运行连接到相同端口的python脚本(使用pySerial),则一切工作正常。
发布于 2011-03-19 06:26:23
libserial是一个令人难以置信的库,我在Arduino Duemilanove上使用它作为独立的串行应用程序。
发布于 2011-06-15 19:18:21
qserialdevice使用!
示例:
http://robocraft.ru/blog/544.html
发布于 2011-03-26 23:57:12
您是否可以只使用三线串行电缆(tx/rx/gnd),而不使用DTR、RTS线路?
https://stackoverflow.com/questions/3142038
复制相似问题