STM32 – лучше поздно, чем никогда! #5 (Монохромный дисплей GMG12864-06D)

Автор: | 24.09.2023

Теперь попробуем подключить монохромный дисплей GMG12864-06D на контроллере ST7565R

Дисплей дешевый, у меня он от синтезатора «Ёжик-S2», дружба с которым у нас не задалась! Сначала подумал, чего я буду париться, найду готовую библиотеку и буду радоваться, да, библиотек на просторах интерната есть! Понравилась библиотека от Олега Волкова, подключил, завелось, решил добавить шрифт покрасивше и побольше, и ничего у меня не получилось, а не получилось потому, что я нифига не понимал как работает библиотека. Решил разобраться с библиотекой от Олега и написать свою без излишеств и не нужных мне функций.

На данном этапе я научился инициализировать дисплей, работать с буфером кадра (значительно увеличивает скорость вывода на дисплей), рисовать геометрические примитивы (линии, прямоугольники и окружности).

Основные функции:

функция отправки команд

  • static void LCD_Send_Command(uint8_t sendCommand)

Функция отправки данных на дисплей

  • static void LCD_Send_Data(uint8_t sendData)

функция очистки буфера кадра

  • void LCD_Clean_Buffer_Frame(void)

функция вывода буфера кадра на дисплей (обновление дисплея)

  • void LCD_Update(void)

функция инициализации дисплея

  • void LCD_Init(void)

функция прорисовки пикселя

  • void LCD_Draw_Pixel(uint8_t xPos, uint8_t yPos, uint8_t pxColor)

функция инверсии любой точки в буфере кадра

  • void LCD_Inversion_Pos_Buffer_Frame(uint16_t xPos_Start, uint16_t xPos_End)

Подключение и настройку проекта в кубе можно посмотреть в PDF файле stm32f104c6t6a_gmg12864.pdf (архив в конце записи), отлаживал на STM32F103С6Т6А, обрезанная STM32F103С8Т6.

Для посмотреть как библиотека работает, отдельно написал демку, чтобы не раздувать размер библиотеки:

  • попиксельная закраска дисплея слева направо и сверху в низ;
  • попиксельная закраска дисплея сверху в низ и слева направо;
  • инверсия всех пикселей;
  • прорисовка рандомных линий в границах дисплея;
  • прорисовка рандомных пустотелых прямоугольников в границах дисплея;
  • прорисовка рандомных закрашенных прямоугольников в границах дисплея;
  • прорисовка рандомных пустотелых окружностей в границах дисплея;
  • прорисовка рандомных закрашенных окружностей в границах дисплея.

Скорость дисплея вполне устраивает, чтобы про него в интернетах не писали. Скоро начну собирать внешний КВ усилитель мощности до 100w, с ФНЧ и КСВ метром, вот и родилась идея сделать индикатор работы усилителя на этом дисплее, все равно без дела лежит.

Видео работы дисплея, подсветку не подключал

Вот и архив с проектом и библиотекой (если проект в кубе открываться не будет, возможно следует обновить куб)

Следующим этапом буду разбираться со шрифтами.

Продолжение следует…

73!

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

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