Передача кириллицы из Arduino на дисплей Nextion по UART

Создано:

Изменено:

В дисплеях Nextion есть поддержка кириллицы в кодировке iso-8859-5, но при передаче русского текста из Arduino в Nextion происходит несоответствие кодировок, и на экране появляется «абракадабра». Предлагаю простой вариант решения данной проблемы.

Попытаемся передать экрану простое сообщение «Привет Hello!».

C++
  String str = "Привет Hello!";
  nextionSerial.print("page0.t2.txt=\"" + str+ "\"");
  nextionSerial.print("\xFF\xFF\xFF");

После выполнения этого кода мы получаем не совсем тот результат на который рассчитывали.

После непродолжительных поисков был найден довольно легкий способ переводить нужный текст в кодировку, понятную для Nextion.

Для этого в проекте nextion editor создаём текстовое поле и вводим в него нужный текст.

Добавляем в обработчик события Touch Press Event код

print t0.txt

Запускаем отладку проекта (кнопка Debug в верхней панели nextion editor). В отладчике нажимаем на созданное текстовое поле. Отладчик выполнит обработчик события touch press event и покажет передаваемую текстовую строку в шестнадцатеричном виде. Нажимаем правой кнопкой мыши на шестнадцатеричный код и в выпадающем списке выбираем COPY HEX+STR.

Вставляем содержимое буфера обмена в блокнот. В тексте заменим все символы пробела на \x. Добавим \x в начале строки и удалим \x в самом конце строки.

Теперь вставим полученный код в программу.

C++
  String str = "\xBF\xE0\xD8\xD2\xD5\xE2\x20\xBC\xB8\xC0\x21\x20\x48\x65\x6C\x6C\x6F\x3A\x29"; //Привет МИР! Hello:)
  nextionSerial.print("page0.t2.txt=\"" + str+ "\"");
  nextionSerial.print("\xFF\xFF\xFF");

Результат

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *