Научная статья на тему 'ГРАФИЧЕСКИЙ OLED ДИСПЛЕЙ UG-2864ASGGG14: ПЕРВОЕ ВКЛЮЧЕНИЕ'

ГРАФИЧЕСКИЙ OLED ДИСПЛЕЙ UG-2864ASGGG14: ПЕРВОЕ ВКЛЮЧЕНИЕ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
224
46
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Жмудь Вадим Аркадьевич, Каменская Анна Сергеевна, Курбетьев Константин Вячеславович, Трубин Виталий Геннадьевич

Рассматриваются основные вопросы, возникающие при освоении OLED дисплея UG-2864ASGGG14 с управлением от отладочной платы STM32VLDISCOVERY.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Жмудь Вадим Аркадьевич, Каменская Анна Сергеевна, Курбетьев Константин Вячеславович, Трубин Виталий Геннадьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ГРАФИЧЕСКИЙ OLED ДИСПЛЕЙ UG-2864ASGGG14: ПЕРВОЕ ВКЛЮЧЕНИЕ»

Графический OLED дисплей UG-2864ASGGG14: первое включение

В.А. Жмудь, А. С. Каменская, К.В. Курбетьев, В.Г. Трубин ФГБОУ ВПО НГТУ, Новосибирск, Россия

Аннотация: Рассматриваются основные вопросы, возникающие при освоении OLED дисплея UG-2864ASGGG14 с управлением от отладочной платы STM32VLDISCOVERY.

Ключевые слова: Микроконтроллер, STM32, STM32VLDISCOVERY, UG-2864ASGGG14, SH1106, OLED.

ВВЕДЕНИЕ

В цифровой технике зачастую необходимо обеспечить обмен информацией между оборудованием и его пользователем. Это осуществляется с помощью устройств ввода-вывода информации. На данный момент доминирующими устройствами отображения информации являются ЖКИ дисплеи. Однако у данной технологии существует достойный и активно развивающийся конкурент.

Дисплеи на основе органических светодиодов (англ. organic light-emitting diode, сокр. OLED) обладают следующими свойствами, которые могут позволить им стать лидерами в области плоскопанельных технологий отображения информации:

• отсутствие необходимости в подсветке, т.к. дисплеи OLED являются светоизлучающими по своей природе;

• большие углы обзора - изображение видно без потери качества с любого угла;

• высокая яркость и контрастность;

• высокое быстродействие - такие дисплеи обладают практически мгновенным откликом;

• Рабочий температурный диапазон от -40

°С.

ДИСПЛЕЙ UG-2864ASGGG14

Прежде чем приступить к описанию конкретного выше обозначенного дисплея, важно отметить факт многообразия моделей дисплеев. Различия проявляются в следующем: разрешение экрана, цвет пикселей, тип управляющего контроллера, структура памяти, управляющие команды. Следовательно, вся информация, приведенная в данной статье, относится в первую очередь именно к конкретному дисплею UG-2864ASGGG14 и, если попробовать, например, запустить тестовый пример, приведенный в статье, подключив дисплей с другим управляющим драйвером, то с высокой вероятностью устройство не заработает. Тем не менее, некоторые общие принципы применимы ко всем моделям.

Вследствие того, что дисплеи OLED производятся, в основном, в Китае, может оказаться довольно трудным определить модель конкретного дисплея и найти документацию. Рекомендуется в таком случае в первую очередь внимательно осмотреть плату на предмет идентифицирующих обозначений, также, можно попробовать связаться с продавцом.

ОСНОВНЫЕ ХАРАКТЕРИСТИКИ

Данное устройство представляет собой монохромный OLED дисплей с разрешением экрана 128x64 точек, управляемый встроенным драйвером SH1106. Обмен информацией производится по интерфейсу РС. Дисплей может работать в нескольких режимах: нормальный, с инверсией изображения, пустой экран, полностью заполненный экран. Основные параметры дисплея приведены ниже, более подробную информацию можно найти в документации к дисплею [1]:

• напряжение питания модуля: 5 В;

• напряжение логической «1»: 2.4 - 3.5 В;

• ток в линии питания: 23 - 33 мА;

• ток в линии передачи данных: 180 - 300 мкА;

• диапазон рабочих температур: от -40 до

+70 °С;

• время работы: до 40 тысяч часов. СТРУКТУРА ДИСПЛЕЯ

Дисплей состоит из матрицы органических микросветодиодов и драйвера управления ими. Имеются четыре вывода, о назначении которых будет рассказано в дальнейшем, и перемычка для выбора адреса устройства, о чем так же подробнее говорится в разделе об управлении. Внешний вид дисплея изображен на Рис. 1. Блок-схема драйвера дисплея изображена на Рис. 2.

Рис. 1. Внешний вид дисплея UG-2864ASGGG14

D7 D6 D5 D4 D3 D2 D1 DO (SITS DA) (SGL)

Рис. 2. Блок-схема драйвера 5Ш106

На данной блок-схеме видно, что информация о состоянии дисплея хранится в оперативной памяти управляющего контроллера (Display Data RAM). Кроме того, можно сделать вывод о наличии внутреннего генератора подкачки напряжения (Charge Pump), который избавляет от необходимости во внешнем источнике питания. В нашем случае можно будет воспользоваться питанием +5 В от платы STM32VLDISCOVERY.

СТРУКТУРА ОЗУ И МАТРИЦЫ ДИСПЛЕЯ

Матрица пикселей дисплея имеет размер

128x64. Таким образом, имеется 64 строки, каждая из которых состоит из 128 пикселей. Или, другими словами, имеется 128 колонок, в каждой из которых 64 пикселя.

ОЗУ контроллера дисплея повторяет организацию матрицы пикселей. Если в какой-то бит ОЗУ записана "1", то соответствующий этому биту пиксель на дисплее горит.

Обращение к отдельной строке в данном дисплее не предусмотрено. Обращаться можно только к т.н. странице (page). Слово "страница" в данном случае означает просто группу из 8 последовательных строк, не стоит ассоциировать его с привычным нам значением.

Таким образом, всего имеется 8 (64/8=8) страниц (Page0-Page7).Так, строка 10 будет принадлежать странице Page1, строка 60 -странице Page7.

Координата (0,0) соответствует крайнему

верхнему левому пикселю дисплея, координата (127, 63) - крайнему правому нижнему (строки, колонки, страницы нумеруются с "0").

Приведем небольшой пример для пояснения.

Рис. 3. Схема пиксельной матрицы дисплея

Допустим, необходимо зажечь один пиксель с адресом (78; 22) (22 строка, 78 пиксель при отсчете слева направо). Для этого нужно установить в "1" один бит ОЗУ на соответствующей позиции. Для

позиционирования задаем адрес колонки (78) и адрес страницы (страницы, а не строки!). Из вышесказанного очевидно, что 22-ой строке соответствует страница Page2 (которая включает в себя строки 16-23). После задания колонки и страницы позиционирование произведено, осталось записать данные. Необходимо зажечь только один пиксель, то есть установить в "1" один бит в ОЗУ. Однако записать один бит нельзя, можно только байт. Поэтому в остальные 7 бит на данной странице необходимо записать "0", чтобы соответствующие пиксели не светились. Таким образом, записываем байт (0Ь01000000) который приводит к зажжению пикселя с адресом (78; 22). Если при таком же позиционировании был бы записан, например, байт (0Ь00000001), зажегся бы пиксель с адресом (78, 16).

Неприятной особенностью данного дисплея является то, что ОЗУ имеет 132 бита в строке, что больше, чем 128 пикселей в строке дисплея. При записи в первые две колонки (т.е. 1-ая и 2-ая) и последние две колонки (131-ая и 132-ая) ОЗУ на дисплее ничего не происходит. Данную особенность необходимо учитывать при написании управляющей программы.

ИНТЕРФЕЙС 12С

Управление и обмен данными с дисплеем

осуществляются по интерфейсу I2C. Для управления устройствами по этому интерфейсу используются две двунаправленные линии связи: SDA (последовательная линия данных) и SCL (последовательная линия тактирования). Такты генерирует ведущее устройство, ведомое лишь «отчитывается» при приёме байта. Рассматриваемый дисплей может выступать только в качестве ведомого (slave) устройства.

Процедура обмена начинается с того, что ведущий формирует состояние «СТАРТ»: генерирует переход сигнала линии SDA из «ВЫСОКОГО» состояния в «НИЗКОЕ» при «ВЫСОКОМ» уровне на линии SCL. Этот переход воспринимается подключенным к шине устройством как признак начала процедуры обмена. Генерация синхросигнала — это всегда обязанность ведущего. Процедура обмена завершается тем, что ведущий формирует состояние «СТОП» — переход состояния линии SDA из низкого состояния в «ВЫСОКОЕ» при «ВЫСОКОМ» состоянии линии SCL. Состояния «СТАРТ» и «СТОП» всегда вырабатываются ведущим. Считается, что шина занята после фиксации состояния «СТАРТ». Шина считается освободившейся через некоторое время после фиксации состояния «СТОП». При передаче посылок по шине IC ведущий генерирует свой синхросигнал на линии SCL. После формирования состояния «СТАРТ» ведущий опускает состояние линии SCL в «НИЗКОЕ» состояние и выставляет на линию SDA старший бит первого байта сообщения. Количество байт в сообщении не ограничено. Спецификация шины I2C разрешает изменения на линии SDA

только при «НИЗКОМ» уровне сигнала на линии SCL. Данные действительны и должны оставаться стабильными только во время «ВЫСОКОГО» состояния синхроимпульса. Для подтверждения приёма байта от ведущего-

передатчика ведомым-приёмником в спецификации протокола обмена по шине РС вводится специальный бит подтверждения, выставляемый на шину SDA после приёма 8 бита данных.

I_II_I L

I_I

i p

START ADDRESS R/W ACK

CQfldrtion

DATA ACK DATA

Рис. 4. Порядок сообщения по интерфейсу I2C

ACK STOP condition

Передача 8 бит данных от передатчика к приёмнику завершаются дополнительным циклом (формированием 9-го тактового импульса линии SCL), при котором приёмник выставляет низкий уровень сигнала на линии SDA, как признак успешного приёма байта. Подтверждение при передаче данных обязательно, кроме случаев окончания передачи ведомой стороной. Соответствующий импульс синхронизации генерируется ведущим. Передатчик отпускает («ВЫСОКОЕ» состояние) линию SDA на время синхроимпульса подтверждения. Приёмник должен удерживать линию SDA в течение «ВЫСОКОГО» состояния синхроимпульса подтверждения в стабильном «НИЗКОМ» состоянии.

В том случае, когда ведомый-приёмник не может подтвердить свой адрес (например, когда он выполняет в данный момент какие-либо функции реального времени), линия данных должна быть оставлена в «ВЫСОКОМ» состоянии. После этого ведущий может выдать состояние «СТОП» для прерывания пересылки данных. Если в пересылке участвует ведущий-приёмник, то он должен сообщить об окончании передачи ведомому-передатчику путем не подтверждения последнего байта. Ведомый-передатчик должен освободить линию данных для того, чтобы позволить ведущему выдать состояние «СТОП» или повторить состояние «СТАРТ». Более подробную информацию можно найти на Википедии [2] или других электронных ресурсах.

ОСОБЕННОСТИ УПРАВЛЕНИЯ

Дисплей принимает два вида байт: байты управления, записываемые в регистры управления контроллера, и байты данных, записываемые в оперативную память. Перед отправкой команды или данных сначала посылается управляющий байт, в котором значение определенного бита определяет, будет

ли следующий передаваемый байт командой или данными для записи в оперативную память. Выбор режима записи или считывания данных определяется другим битом, значение которого устанавливается в процессе работы по I2C.

В управлении данным дисплеем имеется ряд нюансов, которые необходимо осветить. Хотя при отправлении данных автоматически инкрементируется счетчик адреса колонки, что позволяет записывать несколько байт информации в автоматическом режиме, этого не происходит со счетчиком адреса страницы, поэтому страницы необходимо переключать вручную с помощью предусмотренной для этого команды управления (см. Список команд управления). Адреса страниц и колонок не зависят друг от друга. Кроме того, как отмечалось выше, в памяти дисплея на 4х8 ячеек больше, нежели имеется точек на дисплее, поэтому при записи данных во избежание некорректного (смещенного) отображения информации следует устанавливать адрес колонки с дополнительным сдвигом на две колонки.

В случае, если необходимо подключить к управляющему устройству два дисплея и выводить на каждый разную информацию, следует на одном из дисплеев переставить резистор-перемычку, отвечающий за адрес устройства. Он расположен на обратной стороне дисплея и позволяет установить адрес устройства как 0х68 или 0х69.

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

СПИСОК КОМАНД УПРАВЛЕНИЯ

Ниже приведены команды управления дисплеем в шестнадцатеричной системе

счисления. Некоторые команды, например, установка адреса страницы, представляют собой некоторый диапазон, соответствующий в обозначенном примере количеству страниц.

Установка старших битов адреса колонки (00H

- 0FH).

Установка младших битов адреса колонки (10H

- ШЩ

Устанавливает восьмибитный адрес колонки, разделенный на старшую и младшую составляющую, в оперативной памяти дисплея.

Управление встроенным источником напряжения.

При вызове команд управления состоянием источника напряжения дисплей должен быть выключен.

Вход в режим управления источником напряжения (ЛСИ);

Выкл/вкл внутренний источник напряжения (8AH/8BH).

Установка значения подкачки напряжения (ЗОН

- 33Н).

Устанавливает выходное напряжение встроенного источника напряжения (7.4 - 9 В). Установка начальной строки (40H-7FH). Устанавливает адрес строки, с которой начинается вывод информации. Выбранная в памяти контроллера строка окажется верхней на дисплее.

Настройка контрастности.

Устанавливает значение контраста дисплея из

256 возможных в диапазоне 00H - FFH.

Включает две команды:

Вход в режим управления контрастом (8Ш);

Установка значения контраста (00H - FFH).

После отправки данной команды, происходит

автоматический выход из режима управления

контрастом.

Установка режима отображения (А0Н/А1Н). Устанавливает инверсный или нормальный режим отображения информации. Иными словами, позволяет отображать информацию зеркально.

Выкл/вкл режим подсветки всего дисплея (А4Н /А5Н).

Устанавливает нормальный режим работы дисплея или принудительно зажигает все светодиоды.

Выкл/вкл инверсию состояний точек дисплея (А6Н / А7Н).

Определяет нормальный режим работы дисплея, либо инверсный, в котором в зависимости от содержимого оперативной памяти все выключенные светодиоды включаются, а включенные - выключаются. Выкл/вкл дисплей (АЕН/АЕН). Установка адреса страницы (Б0Н-Б7Н).

Приведенный список команд является неполным. Полный список управляющих команд и их подробное описание можно найти в

документации [1].

ПОДКЛЮЧЕНИЕ ДИСПЛЕЯ К STM32VLDISCOVERY

ЗУЗ

РВ7

5ТМ32й13СОУЕРУ РВ6

ш

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Чх

1Ю-2864А5ССС14 ою

ЭС1

ЭОА

Рис. 5. Схема подключения дисплея к плате

Для подключения дисплея к плате используются четыре вывода, однако для работы интерфейса 12С строго необходимы подтягивающие к напряжению уровня логической «1» резисторы. Это объясняется тем, что передача сигналов осуществляется «притягиванием» линии к «0», а в состояние «1» она устанавливается автоматически благодаря подтяжке.

На вход V« питания дисплея подается напряжение 5 В, которое поступает на стабилизатор и питает контроллер, а также на множитель напряжения, чтобы питать матрицу светодиодов. Следует обратить внимание, что контроллер дисплея питается от 3,3 В, соответственно и уровень логической «1» так же близок к этому напряжению. В нашем случае, при инициализации дисплея, необходимо подключить внутренний генератор подкачки напряжения.

ТЕСТОВЫЙ ПРИМЕР

В качестве тестового примера рассмотрим заполнение дисплея константой.

Последовательность действий:

1. Настройка подсистемы 12С №1 в микроконтроллере.

2. Настройка дисплея.

3. Вывод тестовой информации на дисплей.

Рис. 6. Схема в собранном состоянии

Содержимое файла SH1106.h:

#ifndef _SH1106_H

#define _SH1106_H

#include "stm32f10x.h" #define SH1106_I2C_ADDRESS #define SH1106_I2C_SPEED // GPIO OLED #define SH1106_I2C #define SH1106_I2C_CLK #define SH1106_I2C_SCL_PIN #define SH1106_I2C_SCL_GPIO_PORT #define SH1106_I2C_SCL_GPIO_CLK #define SH1106_I2C_SDA_PIN #define SH1106_I2C_SDA_GPIO_PORT #define SH1106_I2C_SDA_GPIO_CLK #define SH1106_I2C_DR void OLED_SH1106_I2C_init(void); void UG2864ASGGG14_Init(void); void OLED_SH1106_Clear(uint8_t data); #endif

0x78

100000 //300000 I2C1

RCC_APB1Periph_I2C1

GPIO_Pin_6

GPIOB

RCC_APB2Periph_GPIOB

GPIO_Pin_7

GPIOB

RCC_APB2Periph_GPIOB ((uint32 t)0x40005410)

Содержимое файла SH1106.c:

#include "stm32f10x.h" #include "sh1106.h"

//=============== Настройка интерфейса I2C ===============

void OLED_SH1106_I2C_init(void) { I2C_InitTypeDef I2C_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB1PeriphClockCmd(SH1106_I2C_CLK, ENABLE);

RCC_APB2PeriphClockCmd(SH1106_I2C_SCL_GPIO_CLK | SH1106_I2C_SDA_GPIO_CLK, ENABLE);

GPIO_InitStructure.GPIO_Pin = SH1106_I2C_SCL_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_Init(SH1106_I2C_SCL_GPIO_PORT, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = SH1106_I2C_SDA_PIN;

GPIO Init(SH1106 I2C SDA GPIO PORT, &GPIO InitStructure);

I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; I2C_InitStructure.I2C_OwnAddress1 = SH1106_I2C_ADDRESS; I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;

I2C InitStructure.I2C AcknowledgedAddress= I2C AcknowledgedAddress 7bit; I2C_InitStructure.I2C_ClockSpeed = SH1106_I2C_SPEED;

I2C_Cmd(SH1106_I2C, ENABLE);

I2C_Init(SH1106_I2C, &I2C_InitStructure); }

//=============== Передача команды по I2C ===============

void WriteC(uint8_t COM) {

while (I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY)); I2C_GenerateSTART(I2C1, ENABLE);

while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); // адрес устройства

I2C_Send7bitAddress(I2C1, 0x78, I2C_Direction_Transmitter);

while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); I2C SendData(I2C1, 0x00); // контрольный байт

while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); I2C_SendData(I2C1, COM); // команда

while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));

I2C_GenerateSTOP(I2C1, ENABLE); }

//=============== Передача данных по I2C ===============

void WriteD(uint8_t DAT) {

while (I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY)); I2C_GenerateSTART(I2C1, ENABLE);

while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); // адрес устройства

I2C_Send7bitAddress(I2C1, 0x78, I2C_Direction_Transmitter);

while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); I2C SendData(I2C1, 0x40); // контрольный байт

while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); I2C_SendData(I2C1, DAT); // данные

while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));

I2C_GenerateSTOP(I2C1, ENABLE); }

//=============== Минимальная настройка дисплея UG-2 8 64ASGGG14 ======

void UG2 8 64ASGGG14_Init(void) { WriteC(0xAE) WriteC(0x00) WriteC(0x10) WriteC(0x4 0) WriteC(0xB0) WriteC(0x81) WriteC(0x8 0) WriteC(0xA1) WriteC(0xA6) WriteC(0xad)

/*выключить дисплей*/ /*младшие биты адреса колонки*/ /*старшие биты адреса колонки*/ /*стартовая строка*/ /*стартовая страница*/ /*установка контраста*/ /*128*/

/*отображение слева направо*/ /*нормальный режим*/

/*включить генератор подкачки 7.4В*/

WriteC(0x8b); WriteC(0x30);

WriteC(0xAF); }

/*включить дисплей*/

//=============== Заполнение всего дисплея константой

void OLED_SH1106_Clear() { static uint8 t page = 0xB0; uint8 t x, y; for(y = 0; y < 8; y++) { WriteC(page); page++; for(x = 0; x < 132; x++){ WriteD(0x02); }

}

//-------------------------

page = 0xB0; }

Содержимое файла main.c:

#include <stm32f10x.h> #include "sh1106.h"

int main(void) {

uint32 t i32; for (i32=0; i32<100000 OLED_SH1106_I2C_init(); for (i32=0; i32<100000 UG2864ASGGG14_Init(); // Настройка дисплея for (i32=0; i32<100000; i32++) ;

i32++) ; // Программная задержка // Настройка I2C i32++) ;

while for

} }

(1) { (s = 0;

s<256; s++) OLED SH1106 Clear()

Рис. 7. Тестовый пример

Рис. 8. Демонстрация возможностей дисплея по выводу растровой графики

ВЫВОДЫ

• Дисплей OLED является относительно простым в подключении устройством.

• Характеристики данного устройства позволяют в короткие сроки создавать качественные и гибкие в настройке устройства вывода информации с богатыми возможностями.

Работа выполнена при финансовой поддержке Минобрнауки России по государственному заданию №2014/138, тема проекта «Новые структуры, модели и алгоритмы для прорывных методов управления техническими системами на основе наукоемких результатов интеллектуальной деятельности», проект № 471.

ЛИТЕРАТУРА

[1] SH1106 datasheet [Электронный ресурс]. Режим доступа:

http://www.rhydolabz.com/documents/sh1106 datash eet.pdf

[2] I2C [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/I%C2%B2C

Вадим Аркадьевич Жмудь -

заведующий кафедрой Автоматики НГТУ, профессор, доктор технических наук. E-mail: oao [email protected]

Каменская Анна Сергеевна -

студентка группы АА-36 кафедры Автоматики НГТУ. E-mail:

ladymacbeth94 @yandex. ru

Курбетьев Константин

Вячеславович - студент группы АА-37 кафедры Автоматики НГТУ.

E-mail: [email protected]

Виталий Геннадьевич Трубин -

зав. лаб. кафедры Автоматики НГТУ, директор ООО «КБ Автоматика». E-mail: [email protected]

Graphic OLED Display UG-2864ASYGG14: First Start

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

V.A. Zhmud, A.S. Kamenskaya, K.V.

Kurbetyev, V.G. Trubin

Abstract: The paper discusses main issues arising according the development of OLED display based on UG-2864ASGGG14, which is controlled by the debug board STM32VLDISCOVERY.

Key words: microcontroller, STM32, STM32VLDISCOVERY, UG-2864ASGGG14, SH1106, OLED.

i Надоели баннеры? Вы всегда можете отключить рекламу.