USBシリアルケーブルを介してデスクトップPCにマイクロコントローラーを接続しようとしています。私のデスクトップ PC の OS は Ubuntu 13.10 です。USBシリアルケーブルはTTL-232R-3V3 (FTDI)です。
これが私のソースコードです。プログラムを実行すると、失敗に終わります。(この場合、「Fail」がコンソールに出力されました。)
#include <QCoreApplication>
#include <QtSerialPort/QtSerialPort>
#include <QtSerialPort/QSerialPortInfo>
QT_USE_NAMESPACE
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// Example use QSerialPortInfo
QSerialPort serial("/dev/ttyUSB0");
if (serial.open(QIODevice::ReadWrite)){
qDebug() << "Pass\n";
serial.close();
} else {
qDebug() << "Fail\n";
}
return a.exec();
}
この記事によると、次のステートメントを .pro ファイルに追加する必要があります。
QT += serialport
USBシリアルケーブルを差し込むと、Ubuntuでは「/dev/ttyUSB0」として認識されます。うまくいきそうです。
$dmesg | grep ttyUSB
>>[ 27.653383] usb 6-1: FTDI USB Serial Device converter now attached to ttyUSB0
$ls -la | grep ttyUSB
>> crw-rw---- 1 root dialout 188, 0 12月 14 17:30 ttyUSB0
パーミッションのトラブルを避けるために、私のユーザー名はgpasswdコマンドでダイヤルアウトグループに追加されます。その結果、ターミナルソフト上でUSBシリアルデバイスと通信できるようになりました。
しかし、QSerialPort の問題を解決できません。誰にもアイデアはありますか?どんな助けでも大歓迎です。
前もって感謝します!