基本上我有一个非常简单的C ++程序,我试图打开一个串口(实际上是一个USB-> RS232转换器,应该由libserial支持),但代码冻结在Open()上。没有错误没有例外,没有,它什么都不做。它似乎适用于其他串行端口,除了这个特定的端口。串口也可以与cutecom和其他终端一起使用(并且它不被任何其他程序保留)。我在打开端口之前和之后尝试过配置,但似乎并不重要。我也看不到关于libserial(或相当差的)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");
}
答案 0 :(得分:1)
几年前,当我不得不将控制接口写入允许通过RS-232进行远程控制的调制解调器时,我查看了libserial。我最终选择了Boost的ASIO实现来使用serialport。
不确定Boost.ASIO是否适合您。但根据我的经验,我没有把它挂在我身上......
答案 1 :(得分:0)
我还使用USB串行转换器(pl2303)发现了这个问题。设置VTime似乎解决了这个问题。