Название: SerialPort Отправлено: walkrunman от Февраль 10, 2017, 03:42 Здравствуйте! Помогите, пожалуйста, решить такую проблему...
Нужно считывать данные с arduino. Arduino передает данные о напряжение на потенциометре, подключенном к aruino, компу. (Другими словами, просто информацию. Винда это воспринимает, грубо говоря, как текст, линукс, как байты...) Вроде бы все работает. В том смысле, что я считываю данные в QByteArray, получаю массив байт... А точнее всего 1 байт, насколько я понимаю. Перевожу это в QString и могу в итоге напечатать в textEdit. И все достаточно хорошо, вроде бы печатается. Только вот. в консоли вылезает какая-то ошибка: ANOMALY: use of REX.w is meaningless <default operand size is 64> Вот что бы это значало? Гугление особо не помогло... (да и вообще с английским у меня далеко не идеально) Кроме того в эту самую консоль ничего не хочет писаться. Пишется Hello. QTextStream cout(stdout); cout << "Hello\n"; Но как только я пытаюсь QString напечатать - отказывается... вроде бы на формат не ругается, так что я уж не знаю... Прикрепляю код. В конструкторе mainwindow port = new QSerialPort; port->setPortName("COM4");//в зависимости от гнезда, куда подключен приемник port->setBaudRate(QSerialPort::Baud9600); // скорость передачи данных port->setDataBits(QSerialPort::Data8); //количество передаваемых бит в байте данных port->setStopBits(QSerialPort::OneStop); //количество стоповых бит при передаче данных port->open(QIODevice::ReadWrite); connect(port, SIGNAL(readyRead()), this, SLOT(read())); timer = new QTimer(this); connect(timer, SIGNAL( timeout() ), this, SLOT( read() ) ); timer->start(100); Ну и слот read() void MainWindow::read() { QByteArray data = port->readAll(); qs.append(data); //здесь биты превращаются в строку ui->textEdit->setText(qs); } Название: Re: SerialPort Отправлено: lit-uriy от Февраль 10, 2017, 06:46 Таймер у тебя лишний, есть же уже
port::readyRead() В функцию MainWindow::read() добавь отладку: qDebug() << "Readed:" << data; В pro-файле не забудь добавить: CONFIG += console Тогда в консоли будет печататься отладочное сообщение. Название: Re: SerialPort Отправлено: walkrunman от Февраль 11, 2017, 01:57 Не помогло. Теперь считывает слишком много информации... Ну с этим я сейчас еще попробую разобраться, конечно.
В консоль выводит, слава Богу) Но вот эта вот ANOMALY так и осталась...( Название: Re: SerialPort Отправлено: walkrunman от Февраль 11, 2017, 02:14 Не помогло. Теперь считывает слишком много информации... Ну с этим я сейчас еще попробую разобраться, конечно. В консоль выводит, слава Богу) Но вот эта вот ANOMALY так и осталась...( Как оказалось, проблема даже не в SerialPort... Консоль так реагирует на любой проект Название: Re: SerialPort Отправлено: lit-uriy от Февраль 12, 2017, 14:51 >Консоль так реагирует на любой проект
попробуй запустить консоль независимо от креатора. Помнется мне в одной из тестовых сборок GitChitath под виндовс был такой прикол, эта самая GitChitath умудрялась свою отладку пулять вовсе имеющиеся консоли, в том числе в открытую консоль моего собственного приложения, пришлось GitChitath снести. Может у тебя тоже какое-нибудь приложение себя так ведёт. Название: Re: SerialPort Отправлено: walkrunman от Февраль 12, 2017, 18:10 А как это делается..?
Название: Re: SerialPort Отправлено: lit-uriy от Февраль 12, 2017, 18:39 что делается?
Запустить консоль? В Винде через кнопку Пуск, открываешь командную строку, затем как и ранее запускаешь свою программу, если в её консоли печатается указанное тобой сообщение, посмотри напечаталось ли оно в виндовозной (запущенной отдельно). В случае с GitChitath сообщения печатались во всех открытых консолях. Название: Re: SerialPort Отправлено: walkrunman от Февраль 13, 2017, 00:39 Запустил. Нет, не пишет ничего...
Название: Re: SerialPort Отправлено: lit-uriy от Февраль 13, 2017, 07:07 т.е. появляется только в консоли твоего приложения? Если так, то искать в твоём приложении.
Название: Re: SerialPort Отправлено: walkrunman от Февраль 14, 2017, 09:39 Проблема решилась.
Перезагрузил комп >< |