Russian Qt Forum
Ноябрь 24, 2024, 11:17
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
SerialPort
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: SerialPort (Прочитано 5274 раз)
walkrunman
Гость
SerialPort
«
:
Февраль 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);
}
«
Последнее редактирование: Февраль 10, 2017, 04:11 от walkrunman
»
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: SerialPort
«
Ответ #1 :
Февраль 10, 2017, 06:46 »
Таймер у тебя лишний, есть же уже
port::readyRead()
В функцию MainWindow::read() добавь отладку:
qDebug() << "Readed:" << data;
В pro-файле не забудь добавить:
CONFIG += console
Тогда в консоли будет печататься отладочное сообщение.
Записан
Юра.
walkrunman
Гость
Re: SerialPort
«
Ответ #2 :
Февраль 11, 2017, 01:57 »
Не помогло. Теперь считывает слишком много информации... Ну с этим я сейчас еще попробую разобраться, конечно.
В консоль выводит, слава Богу)
Но вот эта вот ANOMALY так и осталась...(
Записан
walkrunman
Гость
Re: SerialPort
«
Ответ #3 :
Февраль 11, 2017, 02:14 »
Цитата: walkrunman от Февраль 11, 2017, 01:57
Не помогло. Теперь считывает слишком много информации... Ну с этим я сейчас еще попробую разобраться, конечно.
В консоль выводит, слава Богу)
Но вот эта вот ANOMALY так и осталась...(
Как оказалось, проблема даже не в SerialPort...
Консоль так реагирует на любой проект
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: SerialPort
«
Ответ #4 :
Февраль 12, 2017, 14:51 »
>Консоль так реагирует на любой проект
попробуй запустить консоль независимо от креатора.
Помнется мне в одной из тестовых сборок GitChitath под виндовс был такой прикол, эта самая GitChitath умудрялась свою отладку пулять вовсе имеющиеся консоли, в том числе в открытую консоль моего собственного приложения, пришлось GitChitath снести.
Может у тебя тоже какое-нибудь приложение себя так ведёт.
Записан
Юра.
walkrunman
Гость
Re: SerialPort
«
Ответ #5 :
Февраль 12, 2017, 18:10 »
А как это делается..?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: SerialPort
«
Ответ #6 :
Февраль 12, 2017, 18:39 »
что делается?
Запустить консоль?
В Винде через кнопку Пуск, открываешь командную строку, затем как и ранее запускаешь свою программу, если в её консоли печатается указанное тобой сообщение, посмотри напечаталось ли оно в виндовозной (запущенной отдельно).
В случае с GitChitath сообщения печатались во всех открытых консолях.
Записан
Юра.
walkrunman
Гость
Re: SerialPort
«
Ответ #7 :
Февраль 13, 2017, 00:39 »
Запустил. Нет, не пишет ничего...
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: SerialPort
«
Ответ #8 :
Февраль 13, 2017, 07:07 »
т.е. появляется только в консоли твоего приложения? Если так, то искать в твоём приложении.
Записан
Юра.
walkrunman
Гость
Re: SerialPort
«
Ответ #9 :
Февраль 14, 2017, 09:39 »
Проблема решилась.
Перезагрузил комп ><
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...