
下記のコードを実行しますと、次の表示が出てデバイスが認識されます。
次にopenしたいわけですが、open出来ません。
ボーレートとかが設定されてないためか?
name:ttyUSB0 <---デバイスが認識されます。
Description:USB - Serial
Manufacturer:FTDI
Q1) 何とかオープン出来る方法があればお教えください?
この様な、簡単なコードでは旨く行かないのでしょうか?
尚、USBケーブルの先に、FTDIのuartのチップがついています。
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
void MainWindow::on_pushButton_clicked()
{
QString str;
//availablePorts()で利用可能なすべてのシリアルポートが取得できる
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
str=QString("name:%1").arg(info.portName());
qDebug("%s",qPrintable(str));
str=QString("Description:%1").arg(info.description());
qDebug("%s",qPrintable(str));
str=QString("Manufacturer:%1").arg(info.manufacturer());
qDebug("%s",qPrintable(str));
// Example use QSerialPort
QSerialPort serial;
serial.setPort(info);
if (serial.open(QIODevice::ReadWrite)){ <ーーーopen出来ません============
qDebug("Serial port opened");
serial.close();
qDebug("Serial port opened");
}
else{
qDebug("Serial port not opened");
}
}
}
以上宜しくお願いします。
No.1ベストアンサー
- 回答日時:2017/04/20 17:54
Qtだとか、Ubunutuでのプログラミングとかやったことありませんけど。
>ボーレートとかが設定されてないためか?
http://doc.qt.io/qt-5/qserialport.html#baudRate- …
とか、設定方法はドキュメントにあるようですけど。
>次にopenしたいわけですが、open出来ません。
http://doc.qt.io/qt-5/qserialport.html#open
error()で何らか情報取れる…みたいですが試してみましたか?
http://doc.qt.io/qt-5/qserialport.html#SerialPor …
のどれかの値で判別できるようですが。
下記の様に変更してみましたが、変わりないようです。
int nn=serial.open(QIODevice::ReadWrite);
if (nn>0){
qDebug("Serial port opened");
serial.close();
qDebug("Serial port opened");
}
else{
qDebug("Serial port not opened");
}
No.2
- 回答日時:2017/04/20 21:01
>下記の様に変更してみましたが、変わりないようです。
>int nn=serial.open(QIODevice::ReadWrite);
open()の戻り値はboolなんですから、そりゃ意味ないでしょう。
>else{
>qDebug("Serial port not opened");
>}
で終わるのではなくて、
SerialPortError ErrNo = error();
とかやって、ErrNoには何が入りますか?
ってことなんですけど。
たとえば2が入っていればパーミッションの問題でアクセスできなかったんだな。
とか調べられるでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
QTシリアル通信
C言語・C++・C#
-
LINUX上でシリアル通信(C++)
C言語・C++・C#
-
Linuxで入力待ちなしkeyread関数のようなものはありますか?
C言語・C++・C#
-
-
4
Linuxでシリアル通信(RS232C)プログラム
C言語・C++・C#
-
5
シリアル通信でのread関数の戻り値
C言語・C++・C#
-
6
シリアル通信プログラム(受信)について
C言語・C++・C#
-
7
Linuxのgccのインクルードパス?
UNIX・Linux
-
8
ネットワーク切断を検出するには?
C言語・C++・C#
-
9
RS232cを用いた送信プログラム
C言語・C++・C#
-
10
Linuxプログラミングで、キーボードの値がほしい
C言語・C++・C#
-
11
C# シリアル通信でデータ受信時の欠損について
C言語・C++・C#
関連するQ&A
- 1 ディスクのreadよりwriteが速い?
- 2 シリアルコンソール接続がread-onlyになる
- 3 ubuntu搭載ノートPCにシリアル-USB変換ケーブルを接続
- 4 下記の状態からUbuntuのインストール方法教えて
- 5 シリアル接続(Comポート)について
- 6 ubuntuのポート解放について
- 7 Linuxでシリアルポートが利用できません
- 8 linuxマシンからシリアルポートでtelnet接続をしたい
- 9 Ubuntuで管理者としてコマンドを実行するには
- 10 KDEでエラー「Could not open network socket 'dcopserver'プログラムが実行中か確認して下さい」
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
同一USBデバイスのデバイス...
-
5
KNOPPIXがHDDを認識しません
-
6
ハードウェアRAIDのデバイスフ...
-
7
/dev/hdaのhとは?
-
8
Ubuntuでシリアルポートのopen...
-
9
vmwareで仮想テープドライブの...
-
10
画面が真っ黒のままです
-
11
DNSサーバーの構築「no servers...
-
12
VineLinuxをInstallして再起動...
-
13
CentOSのアンインストール方法
-
14
Linux上でシステムモデル(PC型...
-
15
httpd(Apache)でhttpsのポート...
-
16
CentOSの解像度・変更方法。
-
17
logrotateの再起動
-
18
linux mint での無線LANが認識...
-
19
GUIで起動するには。。
-
20
/etc/rc.d/rc.localの書き方
おすすめ情報