2016-07-11 2 views
1

Я пытаюсь установить пользовательскую скорость передачи в 10400 на мое устройство в Linux с помощью Qt. Тем не менее, когда я запустить приложение, вывод на консоль продолжает сообщает, чтоQt - Настройка пользовательской скорости в бодах

Скорость передачи данных последовательного порта/DEV/ttyUSB0 установлен в 10403 вместо 10400: делителей +2307,692383 неподдерживаемый

Я также установить биты данных на 8, четность без четности и стоповые биты до 1, что довольно стандартно.

Вот мой код, кстати:

serial -> setBaudRate(10400); // Set Baud Rate 
serial -> setDataBits(QSerialPort::Data8); 
serial -> setStopBits(QSerialPort::OneStop); 
serial -> setParity(QSerialPort::NoParity); 

При запуске приложения на Windows, однако, она работает совершенно нормально.

Мое устройство не может подключаться к какой-либо другой скорости передачи, отличной от 10400. Приложение может компилироваться и запускаться, однако результатом является весь мусор. Я хочу знать, есть ли способ указать эту скорость в бодах без каких-либо проблем?

+0

Итак, это не работает на Linux, или вас просто раздражает сообщение? – hyde

+0

@hyde Мое устройство не может подключаться к любой другой скорости передачи, отличной от 10400. Приложение может компилироваться и запускаться, однако результатом является весь мусор. Я хочу знать, есть ли способ указать эту скорость в бодах без каких-либо проблем? – xcyl40

+0

Это похоже на ошибку в Qt, которая была исправлена ​​в Qt 5.6, как сказано в моем ответе. – hyde

ответ

0

Соответствующий отчет об ошибке here. В основном это означает, что точная скорость передачи данных недоступна, потому что фактическая вещь, настроенная на аппаратное обеспечение, является целым числом делителем некоторой тактовой частоты, и нет точного целочисленного делителя для запрошенной скорости передачи в бодах. Предупреждающее сообщение довольно подробно описывает это.

Не имеет значения, скорость передачи имеет некоторый допуск, но если это вызывает проблемы (обсуждение по ошибке указывает на то, что это может ...), обновление в Qt 5.6 предлагается в отчете об ошибке.

0

Это предупреждение; это означает, что вы должны исправить код, но код все еще работает. То, что вы пытаетесь сделать, не поддерживается аппаратным обеспечением, на котором вы работаете. Windows только тише об этом, это тоже не поддерживает.

+0

Ох. Есть ли способ, чтобы я мог указать скорость передачи до 10400 без каких-либо проблем? – xcyl40

+0

@ChrisL. Нет, потому что аппаратное обеспечение не поддерживает его. –

+0

Из дальнейших исследований кажется, что мне может потребоваться сбросить/изменить/вычислить делитель, чтобы вручную изменить скорость? Возможно ли это? – xcyl40

Смежные вопросы