Теперь попробуем подключить монохромный дисплей 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, с ФНЧ и КСВ метром, вот и родилась идея сделать индикатор работы усилителя на этом дисплее, все равно без дела лежит.
Видео работы дисплея, подсветку не подключал
Вот и архив с проектом и библиотекой (если проект в кубе открываться не будет, возможно следует обновить куб)
stm32_gmg12864
Следующим этапом буду разбираться со шрифтами.
Продолжение следует…
73!