Top.Mail.Ru
Уведомления
Очистить все

[Решено] Подключение OLED на ssd1306

(@rodion-2)
Level 3

Здравствуйте! Если есть у кого-то опыт подключения дисплея на ssd1306 по SPI, можете ли поделиться исходниками, т.к. уже три дня пытаюсь залить экран белым цветом, но он вообще не выдает никакой реакции. 

Цитата
Создатель темы Размещено : 28.09.2021 20:19
Aveal
(@aveal)
Top level Admin

Заказал себе дисплей на ssd1306, на следующей неделе подключу.

ОтветитьЦитата
Размещено : 28.09.2021 21:55
Родион reacted
(@rodion-2)
Level 3

Большое спасибо!

ОтветитьЦитата
Создатель темы Размещено : 28.09.2021 23:20
Aveal
(@aveal)
Top level Admin

Доставили дисплеи наконец-то, и года не прошло..

https://microtechnics.ru/displej-na-baze-kontrollera-ssd1306-biblioteka-dlya-stm32/

ОтветитьЦитата
Размещено : 29.10.2021 17:08
(@rodion-2)
Level 3

@aveal Огромное спасибо! 😀 

ОтветитьЦитата
Создатель темы Размещено : 29.10.2021 22:48
Aveal
(@aveal)
Top level Admin

@rodion-2

🙂 

ОтветитьЦитата
Размещено : 30.10.2021 11:36
(@viktor)
Level 1

Добрый день. Начал изучение STM32. Нашел вашу статью и тут - небольшой облом. Нехватает самого главного - вывода текста на экран. Если продолжения не предвидется или напряг со временем, то прошу хотя бы напрвить в нужную сторону. Куда копать дальше. Попробую осилить и дописать эту библиотеку.

ОтветитьЦитата
Размещено : 15.07.2022 03:06
Aveal
(@aveal)
Top level Admin

@viktor Добрый день!

Можно взять какую-нибудь библиотеку под Arduino, там посмотреть, как вывод текста организован, файлы шрифтов забрать итд. И перенести на STM32. Мне кажется так наиболее быстро будет.

ОтветитьЦитата
Размещено : 15.07.2022 10:45
(@viktor)
Level 1

И еще один вопрос - подскажите, что изменить для перехода на экран размером 128х32?  В файле параметр SSD1306_Y_SIZE 32 // 64 изменил. Изображение делится на две части. Наверное нужно еще что-то поменять. Заранее спасибо за подсказки.

 

ОтветитьЦитата
Размещено : 15.07.2022 14:16
Aveal
(@aveal)
Top level Admin

@viktor А как именно делится?

ОтветитьЦитата
Размещено : 15.07.2022 15:16
(@viktor)
Level 1

Если код строго по уроку - тогда рисунок на экране такой:

1

 Вроде все нормально, но строк в столбцах ровно 32. Это строки из примера.

 SSD1306_Y_SIZE 64

SSD1306_DrawFilled#defineRect(i * 16, i * 16 + 8, 0, 63);

Меняю строки на такие:

SSD1306_Y_SIZE 32

SSD1306_DrawFilled#defineRect(i * 16, i * 16 + 8, 0, 31);

И получаю изображение рисующее колонки по половинке:

2

 Где-то что-то не то. Чтобы нарисовать одну строчку приходится писать так:

SSD1306_DrawFilled#defineRect(i * 16, i * 16 + 8, 0, 2);

 

ОтветитьЦитата
Размещено : 16.07.2022 03:36
Aveal
(@aveal)
Top level Admin

Надо разбираться... А это разве дисплей 128*32?

ОтветитьЦитата
Размещено : 16.07.2022 10:48
(@viktor)
Level 1
Aveal
(@aveal)
Top level Admin

@viktor в инициализации можно глянуть, где:

// Set display start line

И

// Set page address

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

ОтветитьЦитата
Размещено : 16.07.2022 19:34
Поделиться: