2

我正在 Ubuntu 上开发一个串行通信应用程序。我正在使用 pl2303 转换器和libserial

我的问题是我无法设置波特率。执行下面的源代码后,我得到错误状态 = 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;
   }
}
4

1 回答 1

0

你确定调用my_serial_stream.good()是好的吗?

http://libserial.sourceforge.net/doxygen/class_lib_serial_1_1_serial_stream.html它没有列出。有一种IsOpen()方法代替。

于 2012-10-02T13:33:29.320 回答