Здравствуйте, уважаемые читатели. В своих разработках на микроконтроллерах STM32, для вывода осмысленной информации, я пользуюсь OLED дисплеями на чипе SSD1306. В последний раз пришел ко мне 1,3" SPI модель по демократичной цене — около 200руб. Первое, что бросилось в глаза — надпись SH1106 вместо SSD1306, поиск в интернете прояснил, что это практически тоже самое, только оставлен единственный страничный режим адресации, да и тот ограничен одной строкой. Как с ним работать я и постараюсь объяснить вам в этой публикации.
Где-то с год назад мне стало не хватать возможностей синей пилюли (STM32F103) и была заказана китайская плата разработчика STM32F407VE. Для отладки, часто, двух светодиодов не хватает, поэтому в каждом проекте для вывода информации подключаю OLED SSD1306 по шине I2C, в который влюбился еще со времен Arduino. Так как графику я на него не вывожу, в основном числа и текст, а размер готовых библиотек и их содержание поражал мое воображение, была написана небольшая библиотечка, которую я немного адаптировал под SH1106 и хочу поделится с вами процессом ее написания. Дисплей приехал 7pin SPI:
![Вывод текста на OLED дисплей с контроллером SH1106 по шине SPI через библиотеку HAL - 1 sh1106](https://www.pvsm.ru/images/2020/08/23/vyvod-teksta-na-OLED-displei-s-kontrollerom-SH1106-po-shine-SPI-cherez-biblioteku-HAL.jpeg)
Плата разработчика у меня такая, но ничего вам не помешает подключить к другой, хоть на STM3F103, для чего HAL и был придуман (разве не так ?):
![Вывод текста на OLED дисплей с контроллером SH1106 по шине SPI через библиотеку HAL - 2 F407board](https://www.pvsm.ru/images/2020/08/23/vyvod-teksta-na-OLED-displei-s-kontrollerom-SH1106-po-shine-SPI-cherez-biblioteku-HAL-2.jpeg)