34#include "driver/i2c.h"
43#define OLED_I2C_ADDRESS 0x3C
46#define OLED_COLUMNS 128
48#define OLED_PIXEL_PER_PAGE 8
51#define OLED_CONTROL_BYTE_CMD_SINGLE 0x80
52#define OLED_CONTROL_BYTE_CMD_STREAM 0x00
53#define OLED_CONTROL_BYTE_DATA_STREAM 0x40
56#define OLED_CMD_SET_CONTRAST 0x81
57#define OLED_CMD_DISPLAY_RAM 0xA4
58#define OLED_CMD_DISPLAY_ALLON 0xA5
59#define OLED_CMD_DISPLAY_NORMAL 0xA6
60#define OLED_CMD_DISPLAY_INVERTED 0xA7
61#define OLED_CMD_DISPLAY_OFF 0xAE
62#define OLED_CMD_DISPLAY_ON 0xAF
65#define OLED_CMD_SET_MEMORY_ADDR_MODE 0x20
66#define OLED_CMD_SET_COLUMN_RANGE 0x21
67#define OLED_CMD_SET_PAGE_RANGE 0x22
70#define OLED_CMD_SET_DISPLAY_START_LINE 0x40
71#define OLED_CMD_SET_SEGMENT_REMAP 0xA1
72#define OLED_CMD_SET_MUX_RATIO 0xA8
73#define OLED_CMD_SET_COM_SCAN_MODE_NORMAL 0xC0
74#define OLED_CMD_SET_COM_SCAN_MODE_REMAP 0xC8
75#define OLED_CMD_SET_DISPLAY_OFFSET 0xD3
76#define OLED_CMD_SET_COM_PIN_MAP 0xDA
77#define OLED_CMD_NOP 0xE3
80#define OLED_CMD_SET_DISPLAY_CLK_DIV 0xD5
81#define OLED_CMD_SET_PRECHARGE 0xD9
82#define OLED_CMD_SET_VCOMH_DESELCT 0xDB
85#define OLED_CMD_SET_CHARGE_PUMP 0x8D
87#define OLED_IIC_FREQ_HZ 400000
101#define DISP_BUF_SIZE 1024
125void ssd1306_flush(lv_disp_drv_t *drv,
const lv_area_t *area, lv_color_t *color_map);
144void ssd1306_set_px_cb(lv_disp_drv_t *
disp_drv, uint8_t *buf, lv_coord_t buf_w, lv_coord_t x, lv_coord_t y, lv_color_t color, lv_opa_t opa);
bool lvgl_i2c_driver_init(int sda_pin, int scl_pin, int speed_hz)
Initialize LVGL I2C Master.
Definition: lvgl_helpers.c:148
void ssd1306_sleep_in(void)
Turn off the display.
Definition: lvgl_helpers.c:127
void ssd1306_sleep_out(void)
Turn on the display.
Definition: lvgl_helpers.c:137
void ssd1306_flush(lv_disp_drv_t *drv, const lv_area_t *area, lv_color_t *color_map)
Flush the buffer on the screen.
Definition: lvgl_helpers.c:90
void ssd1306_init(void)
Initialize ssd1306 device.
Definition: lvgl_helpers.c:47
void ssd1306_set_px_cb(lv_disp_drv_t *disp_drv, uint8_t *buf, lv_coord_t buf_w, lv_coord_t x, lv_coord_t y, lv_color_t color, lv_opa_t opa)
Draw a pixel into the buffer.
Definition: lvgl_helpers.c:74
void ssd1306_rounder(lv_disp_drv_t *disp_drv, lv_area_t *area)
Round the area that needs to be updated.
Definition: lvgl_helpers.c:116
lv_disp_drv_t disp_drv
Definition: oled.c:245