Крейты
Для управления OLED-дисплеем мы будем использовать в основном два крейта: ssd1306 и embedded_graphics.
Драйвер OLED-дисплея SSD1306
Этот крейт предоставляет интерфейс драйвера для монохромных OLED-дисплеев SSD1306, поддерживая I2C и SPI через крейт display_interface. Также есть асинхронная поддержка, которую нужно включить через feature-флаг.
Добавление ssd1306 с поддержкой async
ssd1306 = { version = "0.10.0", features = ["async"] }
Добавление ssd1306 без поддержки async
ssd1306 = { version = "0.10.0", features = [] }
Embedded Graphics
Чтобы выводить текст или рисовать изображения на OLED-дисплее, мы будем использовать крейт embedded_graphics вместе с крейтом ssd1306.
«Embedded-graphics — это библиотека 2D-графики, ориентированная на встраиваемые устройства с ограниченным объёмом памяти».
«Основная цель embedded-graphics — рисовать графику без использования буферов: крейт совместим с no_std и работает без динамического выделения памяти и без предварительного выделения больших блоков памяти. Для этого используется подход на основе итераторов, при котором цвета и позиции пикселей вычисляются на лету с минимумом сохраняемого состояния. Это позволяет приложению использовать гораздо меньше RAM почти без потери производительности».
Этот крейт можно использовать с разными OLED-дисплеями и драйверами в зависимости от типа OLED-модуля. Документация подробно описывает возможности и поддерживаемые драйверы. Рекомендую её изучить.
embedded-graphics = "0.8.1"