qextserialport странное чтение

Я использую Window 7 x64
Проблема в том, что я посылаю с Arduino информацию о ПК, и при чтении порта я получаю странный артефакт Arduino send (0000000), который читает ПК (0000 + 000) или что-то подобное (00000 + 00) — (0 + 000000) и скоро.

Для примера покажу скриншот

введите описание изображения здесь

а также

введите описание изображения здесь

Открытый порт

bool MainWindow::openPort()
{

QString strPort = LineConnect->currentText();
port = new QextSerialPort(strPort, QextSerialPort::EventDriven);

if (port->open(QIODevice::ReadWrite | QIODevice::Unbuffered) == true) {port->setBaudRate(BAUD9600);
port->setDataBits(DATA_8);
port->setParity(PAR_NONE);
port->setStopBits(STOP_1);
port->setFlowControl(FLOW_OFF);
port->setTimeout(100);
port->waitForReadyRead(10);
port->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
connect(port,SIGNAL(readyRead()), this, SLOT(onReadyRead()));
INFO_conn->append("port "+ port->portName() + " opened..");
INFO_conn->append("port " + port->portName() + " reading..");

return true;
} else {
INFO_conn->append("port " + port->portName() + " error connection..");
}
return false;
}

Читать данные

void MainWindow::onReadyRead()
{
/*first option read data*/
QByteArray msg = port->readAll();
int size = msg.size();
QString data = "Data: " + msg + " size: " + QString::number(size);
INFO_conn->append(data);

/*second option read data*/
//    char data[1024];
//    QTextStream out(stdout);

//    out << "data received: ";
//    int bytesRead = port->read(data, 1024);
//    data[bytesRead] = '\0';
//    out << data << " (" << bytesRead << " bytes)" << endl;
//    //QString messRead = "data received: " + data +" "+ bytesRead + " bytes";
//    INFO_conn->append(data);

}

отправить данные Arduino на ПК

void setup()
{
Serial.begin(9600);

.....
}
void loop()
{
Serial.print(K38);
Serial.print(K40);
Serial.print(K42);
Serial.print(K44);
Serial.print(K46);
Serial.print(K48);
Serial.print(K50);

or

Serial.print("0000000"); // result same

}

Я не могу понять, в чем может быть проблема, все перепробовал.
Примеры из библиотеки QexSerialPort читают тоже самое.
Нужна помощь. Спасибо за любую помощь.

0

Решение

Я бы предложил отладку кода вашего последовательного порта с помощью приложения последовательного терминала (шпатлевка, TeraTerm, Гипертерминал). Подключите приложение последовательного терминала к Arduino и посмотрите, получите ли вы ожидаемый результат. Также подключите его к вашему приложению Qt и посмотрите, можете ли вы отправить текст в ваше приложение Qt и получить вменяемый вывод. Вы должны быть в состоянии сказать лучше, если проблема с кодом на Arduino или на ПК.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]