• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Решено Откуда лишний символ?

MiDash

Member
Здравствуйте!
Вожусь с отображением температуры на популярном OLED экранчике. Все работает, но...
Вывожу вот так:
Код:
function write_OLED()
  disp:firstPage()
  repeat
    disp:setFont(u8g.font_6x10)
    disp:drawStr(0, 10,  string.format("%3.1f °C",t))
    disp:setFont(u8g.font_profont29)
    disp:drawStr(0, 50,  string.format("%3.1f °C",t))
  until disp:nextPage() == false
end
И получаю вот это:

Twochars.jpg

Т.е. независимо от шрифта вместо одного символа ° получаю два символа °.
Пробел убирал, не помогло.
Что за WTF, не подскажете?

P.S. Прошивка с nodemcu-build.com
 
Последнее редактирование:

MiDash

Member
Гугл показал мне Oled_SetFont в нескольких местах. Что-то мне кажется, что это нифига не Lua.

Может быть, мою задачу может решить вот такой костыль?
Код:
function write_OLED()
  disp:firstPage()
  repeat
    disp:setFont(u8g.font_profont29)
    disp:drawStr(0, 50,  string.format("%3.1f°C",t))
    disp:drawStr(0, 50,  string.format("%3.1f ",t))
  until disp:nextPage() == false
end
Забить на лишний символ и не докапываться до причины?
 

sboganov

Member
Гугл показал мне Oled_SetFont в нескольких местах. Что-то мне кажется, что это нифига не Lua.

Может быть, мою задачу может решить вот такой костыль?
Код:
function write_OLED()
  disp:firstPage()
  repeat
    disp:setFont(u8g.font_profont29)
    disp:drawStr(0, 50,  string.format("%3.1f°C",t))
    disp:drawStr(0, 50,  string.format("%3.1f ",t))
  until disp:nextPage() == false
end
Забить на лишний символ и не докапываться до причины?
Что то мне подсказывает что твой редактор соxраняет в UTF-8 -> и этот символ как раз и занимает 2 байта. Попробуй этот символ закодировать через \0xBB (только найди правильный код для этого символа)
 

MiDash

Member
Пользую ESPlorer под Дебианом. Про UTF тоже думаю. Смутило - почему только один знак? Всякие там Hello World выводил, но проблем не было.
Код 176=0xb0
Спасибо, попробую.
 
Сверху Снизу