Почему QT Creator автоматически разделяет мою строку при чтении данных из микроконтроллера STM32? ⇐ C++
-
Гость
Почему QT Creator автоматически разделяет мою строку при чтении данных из микроконтроллера STM32?
Я пытался отправить некоторые значения температуры, считанные двумя датчиками, подключенными к микроконтроллеру STM32. Я уже запрограммировал mc на отправку всего 2 строк значений температуры (вертикально и каждый раз при обновлении нового значения; см. ниже) в виджет textEdit QT Creator
22,05 °C
23,12 °C
Однако QT продолжает разбивать строку на разные размеры... иногда я получаю ее полностью, а иногда только ее части. (например, 0,05°C или просто °C). Я даже пытался отправить обычную строку, например «Тест» или «Привет». Возникает та же проблема. Консоль отладки также отображает разделенные данные (например, «est» или иногда просто «t» для теста). Я не могу понять, почему это происходит.
Мой QT-код для чтения значений:
void MainWindow::readData() { Данные QByteArray = COMPORT->readAll(); qDebug() clear(); qDebug() setText(receivedData); } Моя простейшая версия кода STM32 выглядит так:
буфер символов [7]; если (вход == '1') { sprintf (буфер, «Тест») HAL_UART_Transmit(&huart2, (uint8_t*)buffer, strlen(buffer), 200); }
Я пытался отправить некоторые значения температуры, считанные двумя датчиками, подключенными к микроконтроллеру STM32. Я уже запрограммировал mc на отправку всего 2 строк значений температуры (вертикально и каждый раз при обновлении нового значения; см. ниже) в виджет textEdit QT Creator
22,05 °C
23,12 °C
Однако QT продолжает разбивать строку на разные размеры... иногда я получаю ее полностью, а иногда только ее части. (например, 0,05°C или просто °C). Я даже пытался отправить обычную строку, например «Тест» или «Привет». Возникает та же проблема. Консоль отладки также отображает разделенные данные (например, «est» или иногда просто «t» для теста). Я не могу понять, почему это происходит.
Мой QT-код для чтения значений:
void MainWindow::readData() { Данные QByteArray = COMPORT->readAll(); qDebug() clear(); qDebug() setText(receivedData); } Моя простейшая версия кода STM32 выглядит так:
буфер символов [7]; если (вход == '1') { sprintf (буфер, «Тест») HAL_UART_Transmit(&huart2, (uint8_t*)buffer, strlen(buffer), 200); }
Мобильная версия