Библиотека U8g2 https://github.com/olikraus/u8g2 в своих примерах предлагает вывод изображений с помощью такого массива: Код (C++): static const unsigned char u8g2_logo_97x51_bits[] U8X8_PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, }; Все найденные программы-конвертеры ( в том числе онлайн-переводчики) переводят картинки в массив такого размера: Код (C++): static const unsigned char u8g2_logo_97x51_bits[] U8X8_PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, }; Соответственно, вывод графики не работает. Подскажите пожалуйста, спомощью чего сформировать массив для этой библиотеки?
r0c - ваш вопрос абсолютно не конкретный. Вам надо разобраться, чем отличаются эти массивы. Точнее, очевидно, что надо разбираться не с массивами, а понять, чем отличается формат разметки файла под разные дисплеи. В разных дисплееях порядок обхода пикселей разный, например в дисплеях ОЛЕД пиксели кодируются вертикальными полосками по 8 штук. А в TFT дисплеях пиксели обычно идут горизонтально. Соответветсвенно, массив байтов для одного дисплея не подойдет для другого.
согласен, немного неккоректно спросил. дело в том, что уже готовые готовые массивы из различных прмеров и уроков для oled дисплея 1306 с библиотекой U8g2 не работают, но корректно отображаются c другими библиотеками.
дисплей в обоих случаях один и тот же? Если да, значит библиотека U8g2 использует другой формат экранного буфера, надо смотреть исходники библиотеки
r0c, а вы учли, что кроме массива нужно указать дополнительные данные? Код (C++): void drawXBMP(u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t w, u8g2_uint_t h, const uint8_t *bitmap)
Сделал в графическом редакторе монохромную картинку BMP 128х64 и сконвертировал в XBM онлайн здесь: https://convertio.co/ru/bmp-xbm/ Для вывода на экран использовал функцию: Код (C++): u8g2.drawXBMP( 0, 0, L_width, L_height, L_bits); Всё работает. Пример в архиве.