Ubuntu 10.10 を使用しています。
QTを介してシリアルを使用してマイクロコントローラー(ATmega328p)と通信したいので、テストのために、UARTから文字を読み取り、シリアルポートで同じ文字で応答(応答)するダミーアプリケーションをマイクロコントローラーで作成しましたが、ブラケットの間にあります.
PC が a を送信した場合、PC は応答 [a] を受信します。
ハイパー ターミナル (GtkTerm) を使用して PC から文字を送信すると、アプリケーションはうまく機能しますが、QT を使用すると機能しません。QT からシリアル ポートで文字を送信し、ハイパー ターミナルで応答を待っていますが、応答がありません。
シリアル通信プロパティ: Baud9600、Parity_none、Stop_bits_1、Data_8bits、Flow_control_Off
#include <QtCore/QCoreApplication>
#include <qextserialport.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
const char data[]= "e";
QextSerialPort * port = new QextSerialPort("/dev/ttyUSB0");
port->setBaudRate(BAUD9600);
port->setFlowControl(FLOW_OFF);
port->setParity(PAR_NONE);
port->setDataBits(DATA_8);
port->setStopBits(STOP_1);
port->setTimeout(0);
bool res = false;
res = port->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
if(res)
{
qDebug("Opened");
qDebug(data);
int i = port->write(data, sizeof(data));
}
else
{
qDebug("Failed to connect");
}
return a.exec();
}
何が間違っているのですか?