TheDotFactory формат

Им (STM32) по барабану кириллицы, латиницы и прочие *.цы. Как напишете, так и будет. Собственно, вы уже сами разобрались :wink:

я иммел ввиду функцию вывода кирилицы на дисплей, а там далеко не пофиг :slight_smile:
все шрифты однобайтные и без кирилицы… а те что нашел 1251 , а куб по умолчанию utf кода дает

Пофиг, поверьте :wink:

проясните ? а то может действительно я в дебри полез…

Что прояснить? Что в приведенном вами коде нет ничего специфичного для STM32? Проясняю - нету, этот код одинаково хорошо работает и на AVR, и на ESP и даже на RP2040/2350. Основной принцип - при выводе кириллицы на экран ее нужно перекодировать из UTF8 в CP1251 (если шрифт в таковой)

Проходите по строке и считаете байты, пропуская 0xD0 и 0xD1. Примерно так

uint16_t getLengthOfString(char *_str)
{
  uint16_t result = 0;
  for (uint16_t i = 0; i < UINT16_MAX; i++)
  {
    // считаем до первого нулевого символа, не учитывая служебные байты
    if ((uint8_t)_str[i] > 0)
    {
      // символы не кириллицы считаем в любом случае
      if ((uint8_t)_str[i] < 0xc0)
      {
        result++;
      }
      // иначе, если первый байт служебный - пропускаем его
      else if ((uint8_t)_str[i] != 0xd0 && (uint8_t)_str[i] != 0xd1)
      {
        result++;
      }
    }
    else
    {
      break;
    }
  }

  return (result);
}

Всей разницы только то, что кодировка другая. А так все одно и тоже.
Обработать utf кодировку - это 10-15 строк на С

Если честно , вообще не понял о чем речь..

. Ненавижу cp1251 … да и TDF двухбайтовый код штампует … конечно не все как хотелось , но пойдет… главное сжатый и автоматически…
А гонять туда сюда из одной кодировки в другую ,а потом обратно не вижу смысла.нужно при минимум телодвижений получать новые шрифты…

Оно и видно.
Пока вы не дадите себе труд разобраться в том, чем занимаетесь - так и будете бегать к чужим дядькам каждый чих согласовывать.

1 лайк

А при чем тут это…
Что прояснить? Что в приведенном вами коде нет ничего специфичного для STM32? Проясняю - нету, этот код одинаково хорошо работает и на AVR, и на ESP и даже на RP2040/2350. Основной принцип - при выводе кириллицы на экран ее нужно перекодировать из UTF8 в CP1251 (если шрифт в таковой)

я не понял причем тут мой код и стм … это вообще не в тему и вопрос мой тоже никак не относился ни к какой платформе… Да и если внимательно посмотреть - я создал всего 9 тем … где тут каждый чих ? да и вопросы в основном все указателей касались…

Теряете нить разговора? )))

Нет… про мой код которым я пользуюсь , там нет кирилици и поэтому он вообще никакого отношения тут не имеет. я просто обьяснил нахрена мне нужен TDF.
а если Вы про функцию - то в моем понятии Им (STM32) по барабану кириллицы , латиницы и прочие *.цы . Как напишете, так и будет
означает , что как бы я не написал , т.е в латинице кирилице и пр , он должен был просто взять и вывести , а если ему для этого надо перекодировать , то это никак не значит что ему по барабану..
и кстати вопрос вообще стм не касался никак…

Вопрос был такой…

Ему, камню, реально пофиг. Он, как любой процессор, невероятно туп, лишен разума и выполняет только те инструкции, которые ему дал программист. И выполняет их дословно, побуквенно. Ни о чем при этом не рассуждая. Поэтому рассказывать про то, что он чего-то вам должен - глупо :wink:

Еще раз, при работе с кириллицей, как и с любым национальным шрифтом в кодировке UTF8 всегда (повторяю ВСЕГДА) нужно использовать функцию перекодировки. А про то, что IDE всегда сохраняет в UTF8 пора бы уже догадаться.

Да это какбэ ваши проблемы, шрифты, которые вы используете - как раз в этой кодировке :sweat_smile:

Вам на него ответили в следующих двух-трех постах

Забей… им просто скучно , вот и цепляются… Сам главное разобрался , а на нападки забей .. заняться просто нечем…

Я прекрасно знаю что камню пофиг .. и про то какую кодировку используеет иде я тоже вкурсе

Конечно мои , поэтому я про это и не спрашивал(TDF RLE не в 1251) , кстати как и про все остальное что касается стм в этом посте я тоже не спрашивалююю Это Вы сами решили тут что-то раздуть …Мой вопрос был только про TDF

Клиент непрошибаем, я пас :sweat_smile:

1 лайк

“Для STM” и “с поддержкой кириллицы” это понятия ортогональные.
Если в шрифте есть кириллица, то без разницы, для STM он или для чего другого. А если кириллицы нет, то, опять же, ее нет нигде, ни в STM, ни в AVR, ни в ESP.

Без указания конкретной кодировки этот вопрос лишен смысла.

Правда?
Я уже лет 10 пользуюсь UTF8 без перекодировки.
Вот в этих проектах:

в обоих используется кириллица: в первом - на UTF8, а во втором - несколько кодировок на выбор, включая UTF8. Причем, организация шрифтов разная, но перекодировка нигде не используется (по крайней мере, перекодировка в одну из стандартных кодировок).

Личный пример - так себе аргумент. Можно и cp1251 шрифт использовать без перекодировки - просто вместо явной строки использовать массив индексов символов :wink: