我正在Ubuntu上开发一个串行通信应用程序。我使用的是pl2303转换器和libserial。
我的问题是我不能设置波特率。在执行下面的源代码后,我得到了错误state=2。
我的源码是:
bool setUpCom()
{
SerialStream my_serial_stream ;
my_serial_stream.Open( "/dev/ttyUSB0" ) ;
if ( ! my_serial_stream.good() )
{
printf("\nNo COM Port");
return false;
}
my_serial_stream.SetBaudRate( SerialStreamBuf::BAUD_115200 );
my_serial_stream.SetCharSize( SerialStreamBuf::CHAR_SIZE_8 ) ;
if ( ! my_serial_stream.good() )
{
std::cerr << "Error setting serial port state=2" ;
return false;
}
my_serial_stream.SetNumOfStopBits(1) ;
if ( ! my_serial_stream.good() )
{
std::cerr << "Error setting serial port state=3" ;
return false;
}
my_serial_stream.SetParity( SerialStreamBuf::PARITY_NONE ) ;
if ( ! my_serial_stream.good() )
{
std::cerr << "Error setting serial port state=4" ;
return false;
}
my_serial_stream.SetBaudRate( SerialStreamBuf::BAUD_115200 );
if ( ! my_serial_stream.good() )
{
std::cerr << "Error setting serial port state =5" ;
return false;
}
}发布于 2012-10-02 21:33:29
您确定调用my_serial_stream.good()是好的吗?
在http://libserial.sourceforge.net/doxygen/class_lib_serial_1_1_serial_stream.html中,它没有列出。取而代之的是IsOpen()方法。
https://stackoverflow.com/questions/12674205
复制相似问题