Добрый день! Проблема такая: написал простую консольную программу, которая получает информацию от Arduino Nano. Всё работало нормально, но только до некоторых пор. Однажды я увидел, что данные приходят неверные. Стал ковыряться, и обнаружил, что ко мне не приходит байт 0x20. То есть если я отправляю 0x21 или любой другой, то всё супер, а вот если 0x20 - то словно и нету его.Библиотека для подключения - LibSerial. Порт - /dev/ttyUSB[X]...
Библиотека программирования - Qt 4.7 (хотя в данном случае это вряд ли важно)Примерный текст программы (привожу только необходимые выдержки):
using namespace LibSerial;
SerialStream ardu;
void Arduino::open()
{
ardu.Open(dev_name.toStdString());
ardu.SetBaudRate(SerialStreamBuf::BAUD_9600);
ardu.SetCharSize(SerialStreamBuf::CHAR_SIZE_8);
}
void Arduino::getSettings()
{
unsigned char str;
QByteArray result_ba;while (ardu.IsOpen())
{
ardu >> str; // ПОЛУЧАЕМ НОВЫЙ БАЙТ от АРДУИНО
ba.append(str);
qDebug()<<ba.toHex(); // здесь символ за символом смотрю на формирующуюся последовательность байтов
..................
}
На самой плате отправляю командуSerial.write(0x20);
и получаю фигу!
В чем может быть проблема?
P.S. Операционная система - Ubuntu 12.04
> P.S. Операционная система - Ubuntu 12.04)))
Поступи хитрее, раз 0х20 не проходит, а он, видимо жизненно нужон
Сделай так
0xff равно 0x20 receive
0x20 равно 0xff transmitter
Иными словами костыль, и работать будет, и разберешься почему 0x20
Не проходит.
>> P.S. Операционная система - Ubuntu 12.04
> )))
> Поступи хитрее, раз 0х20 не проходит, а он, видимо жизненно нужон
> Сделай так
> 0xff равно 0x20 receive
> 0x20 равно 0xff transmitter
> Иными словами костыль, и работать будет, и разберешься почему 0x20
> Не проходит.Но мне 0xFF тоже иногда ведь бывает нужен!
>> P.S. Операционная система - Ubuntu 12.04
> )))
> Поступи хитрее, раз 0х20 не проходит, а он, видимо жизненно нужон
> Сделай так
> 0xff равно 0x20 receive
> 0x20 равно 0xff transmitter
> Иными словами костыль, и работать будет, и разберешься почему 0x20
> Не проходит.Провел более тщательный эксперимент. Не передаются 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x20. Смотрю: может быть, это какие-то особые символы, завязанные на ASCII-таблице?
>>> P.S. Операционная система - Ubuntu 12.04
>> )))
>> Поступи хитрее, раз 0х20 не проходит, а он, видимо жизненно нужон
>> Сделай так
>> 0xff равно 0x20 receive
>> 0x20 равно 0xff transmitter
>> Иными словами костыль, и работать будет, и разберешься почему 0x20
>> Не проходит.
> Провел более тщательный эксперимент. Не передаются 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x20.
> Смотрю: может быть, это какие-то особые символы, завязанные на ASCII-таблице?Значит библитека глючная, 0x20 пробел, значит спецсимволы обрабатываются криво,
> может быть, это какие-то особые символыДа, это суслики - их не видно, но они есть!
>> может быть, это какие-то особые символы
> Да, это суслики - их не видно, но они есть!
>)))))) точно
> Библиотека для подключения - LibSerial. Порт - /dev/ttyUSB[X]...
> Библиотека программирования - Qt 4.7 (хотя в данном случае это вряд ли важно)А накой LibSerial, если есть QSerialPort::
>> Библиотека для подключения - LibSerial. Порт - /dev/ttyUSB[X]...
>> Библиотека программирования - Qt 4.7 (хотя в данном случае это вряд ли важно)
> А накой LibSerial, если есть QSerialPort::Насколько я понял, QtSerialPort появилась только на Qt5. А в моём случае это неприменимо.
>>> Библиотека для подключения - LibSerial. Порт - /dev/ttyUSB[X]...
>>> Библиотека программирования - Qt 4.7 (хотя в данном случае это вряд ли важно)
>> А накой LibSerial, если есть QSerialPort::
> Насколько я понял, QtSerialPort появилась только на Qt5. А в моём случае
> это неприменимо.http://qt-project.org/wiki/QtSerialPort
Brief description
The QtSerialPort module is an add-on module for the Qt5 library, providing a single interface for both hardware and virtual serial ports.
Note: Also added support for Qt4.
Usage
To use the library, add serialport to the *.pro file of your project:
Qt4
CONFIG += serialportQt5
QT += serialportInclude the header files of QtSerialPort where appropriate:
Спасибо! Заработала, зараза!