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 に答える