基本上我有一个非常简单的 C++ 程序,我试图打开一个串口(实际上是一个 USB->RS232 转换器,libserial 应该支持)但是代码在 Open() 上卡住。没有错误没有异常(exception),什么都没有,它什么都不做。它似乎适用于除此特定串口之外的其他串口。串行端口也可以与 cutecom 和其他终端一起工作(并且不被任何其他程序保留)。我试过在打开端口之前和之后进行配置,但这似乎并不重要。我在 libserial 的(相当差的)文档或标题中也看不到任何关于握手的信息,也许它正在等待握手或其他东西,我不知道...... Libserial0 版本 0.6.0 和 Ubuntu 10.10。怎么了,或者我该如何尝试调试它...?任何其他建议的库/方法来使用 C++ 的串口?
#include <SerialStream.h>
#include <iostream>
int main() {
LibSerial::SerialStream device_;
device_.SetBaudRate(LibSerial::SerialStreamBuf::BAUD_9600);
device_.SetCharSize(LibSerial::SerialStreamBuf::CHAR_SIZE_8);
device_.SetNumOfStopBits(1);
device_.SetParity(LibSerial::SerialStreamBuf::PARITY_NONE);
device_.SetFlowControl(LibSerial::SerialStreamBuf::FLOW_CONTROL_NONE);
device_.Open("/dev/ttyUSB1");
}
最佳答案
几年前,当我不得不为允许通过 RS-232 进行远程控制的调制解调器编写控制接口(interface)时,我查看了 libserial。我最终选择了 Boost 的 ASIO 实现来利用串口。
不确定 Boost.ASIO 是否适合您。但根据我的经验,我并没有把它卡在我身上......
关于c++ - Libserial Open() 在我的 C++ 程序中卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4303995/