SRA Board Components
ESP-IDF component for SRA Board
Macros | Functions
lvgl_helpers.h File Reference
#include <stdbool.h>
#include "i2cdev.h"
#include "driver/i2c.h"
#include "assert.h"
#include "lvgl.h"
#include "pin_defs.h"
Include dependency graph for lvgl_helpers.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define OLED_I2C_ADDRESS   0x3C
 
#define OLED_WIDTH   128
 
#define OLED_HEIGHT   64
 
#define OLED_COLUMNS   128
 
#define OLED_PAGES   8
 
#define OLED_PIXEL_PER_PAGE   8
 
#define OLED_CONTROL_BYTE_CMD_SINGLE   0x80
 
#define OLED_CONTROL_BYTE_CMD_STREAM   0x00
 
#define OLED_CONTROL_BYTE_DATA_STREAM   0x40
 
#define OLED_CMD_SET_CONTRAST   0x81
 
#define OLED_CMD_DISPLAY_RAM   0xA4
 
#define OLED_CMD_DISPLAY_ALLON   0xA5
 
#define OLED_CMD_DISPLAY_NORMAL   0xA6
 
#define OLED_CMD_DISPLAY_INVERTED   0xA7
 
#define OLED_CMD_DISPLAY_OFF   0xAE
 
#define OLED_CMD_DISPLAY_ON   0xAF
 
#define OLED_CMD_SET_MEMORY_ADDR_MODE   0x20
 
#define OLED_CMD_SET_COLUMN_RANGE   0x21
 
#define OLED_CMD_SET_PAGE_RANGE   0x22
 
#define OLED_CMD_SET_DISPLAY_START_LINE   0x40
 
#define OLED_CMD_SET_SEGMENT_REMAP   0xA1
 
#define OLED_CMD_SET_MUX_RATIO   0xA8
 
#define OLED_CMD_SET_COM_SCAN_MODE_NORMAL   0xC0
 
#define OLED_CMD_SET_COM_SCAN_MODE_REMAP   0xC8
 
#define OLED_CMD_SET_DISPLAY_OFFSET   0xD3
 
#define OLED_CMD_SET_COM_PIN_MAP   0xDA
 
#define OLED_CMD_NOP   0xE3
 
#define OLED_CMD_SET_DISPLAY_CLK_DIV   0xD5
 
#define OLED_CMD_SET_PRECHARGE   0xD9
 
#define OLED_CMD_SET_VCOMH_DESELCT   0xDB
 
#define OLED_CMD_SET_CHARGE_PUMP   0x8D
 
#define OLED_IIC_FREQ_HZ   400000
 
#define DISP_BUF_SIZE   1024
 

Functions

bool lvgl_i2c_driver_init (int sda_pin, int scl_pin, int speed_hz)
 Initialize LVGL I2C Master. More...
 
void ssd1306_init (void)
 Initialize ssd1306 device. More...
 
void ssd1306_flush (lv_disp_drv_t *drv, const lv_area_t *area, lv_color_t *color_map)
 Flush the buffer on the screen. More...
 
void ssd1306_rounder (lv_disp_drv_t *disp_drv, lv_area_t *area)
 Round the area that needs to be updated. More...
 
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. More...
 
void ssd1306_sleep_in (void)
 Turn off the display. More...
 
void ssd1306_sleep_out (void)
 Turn on the display. More...
 

Macro Definition Documentation

◆ DISP_BUF_SIZE

#define DISP_BUF_SIZE   1024

◆ OLED_CMD_DISPLAY_ALLON

#define OLED_CMD_DISPLAY_ALLON   0xA5

◆ OLED_CMD_DISPLAY_INVERTED

#define OLED_CMD_DISPLAY_INVERTED   0xA7

◆ OLED_CMD_DISPLAY_NORMAL

#define OLED_CMD_DISPLAY_NORMAL   0xA6

◆ OLED_CMD_DISPLAY_OFF

#define OLED_CMD_DISPLAY_OFF   0xAE

◆ OLED_CMD_DISPLAY_ON

#define OLED_CMD_DISPLAY_ON   0xAF

◆ OLED_CMD_DISPLAY_RAM

#define OLED_CMD_DISPLAY_RAM   0xA4

◆ OLED_CMD_NOP

#define OLED_CMD_NOP   0xE3

◆ OLED_CMD_SET_CHARGE_PUMP

#define OLED_CMD_SET_CHARGE_PUMP   0x8D

◆ OLED_CMD_SET_COLUMN_RANGE

#define OLED_CMD_SET_COLUMN_RANGE   0x21

◆ OLED_CMD_SET_COM_PIN_MAP

#define OLED_CMD_SET_COM_PIN_MAP   0xDA

◆ OLED_CMD_SET_COM_SCAN_MODE_NORMAL

#define OLED_CMD_SET_COM_SCAN_MODE_NORMAL   0xC0

◆ OLED_CMD_SET_COM_SCAN_MODE_REMAP

#define OLED_CMD_SET_COM_SCAN_MODE_REMAP   0xC8

◆ OLED_CMD_SET_CONTRAST

#define OLED_CMD_SET_CONTRAST   0x81

◆ OLED_CMD_SET_DISPLAY_CLK_DIV

#define OLED_CMD_SET_DISPLAY_CLK_DIV   0xD5

◆ OLED_CMD_SET_DISPLAY_OFFSET

#define OLED_CMD_SET_DISPLAY_OFFSET   0xD3

◆ OLED_CMD_SET_DISPLAY_START_LINE

#define OLED_CMD_SET_DISPLAY_START_LINE   0x40

◆ OLED_CMD_SET_MEMORY_ADDR_MODE

#define OLED_CMD_SET_MEMORY_ADDR_MODE   0x20

◆ OLED_CMD_SET_MUX_RATIO

#define OLED_CMD_SET_MUX_RATIO   0xA8

◆ OLED_CMD_SET_PAGE_RANGE

#define OLED_CMD_SET_PAGE_RANGE   0x22

◆ OLED_CMD_SET_PRECHARGE

#define OLED_CMD_SET_PRECHARGE   0xD9

◆ OLED_CMD_SET_SEGMENT_REMAP

#define OLED_CMD_SET_SEGMENT_REMAP   0xA1

◆ OLED_CMD_SET_VCOMH_DESELCT

#define OLED_CMD_SET_VCOMH_DESELCT   0xDB

◆ OLED_COLUMNS

#define OLED_COLUMNS   128

◆ OLED_CONTROL_BYTE_CMD_SINGLE

#define OLED_CONTROL_BYTE_CMD_SINGLE   0x80

◆ OLED_CONTROL_BYTE_CMD_STREAM

#define OLED_CONTROL_BYTE_CMD_STREAM   0x00

◆ OLED_CONTROL_BYTE_DATA_STREAM

#define OLED_CONTROL_BYTE_DATA_STREAM   0x40

◆ OLED_HEIGHT

#define OLED_HEIGHT   64

◆ OLED_I2C_ADDRESS

#define OLED_I2C_ADDRESS   0x3C
  • MIT License Copyright (c) 2020 LVGL Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

◆ OLED_IIC_FREQ_HZ

#define OLED_IIC_FREQ_HZ   400000

◆ OLED_PAGES

#define OLED_PAGES   8

◆ OLED_PIXEL_PER_PAGE

#define OLED_PIXEL_PER_PAGE   8

◆ OLED_WIDTH

#define OLED_WIDTH   128

Function Documentation

◆ lvgl_i2c_driver_init()

bool lvgl_i2c_driver_init ( int  sda_pin,
int  scl_pin,
int  speed_hz 
)

Initialize LVGL I2C Master.

Parameters
sda_pingpio number for I2C master data
scl_pingpio number for I2C master clock
speed_hzI2C master clock frequency
Returns
esp_err_t returns ESP_OK if I2C is initialized successfully, else the appropriate error code

◆ ssd1306_flush()

void ssd1306_flush ( lv_disp_drv_t *  drv,
const lv_area_t *  area,
lv_color_t *  color_map 
)

Flush the buffer on the screen.

Parameters
drvpointer to the display driver structure
arearepresents an area on the screen
color_maprepresents the color map

◆ ssd1306_init()

void ssd1306_init ( void  )

Initialize ssd1306 device.

Returns
esp_err_t returns ESP_OK if I2C is initialized successfully, else the appropriate error code

◆ ssd1306_rounder()

void ssd1306_rounder ( lv_disp_drv_t *  disp_drv,
lv_area_t *  area 
)

Round the area that needs to be updated.

Parameters
drvpointer to the display driver structure
arearepresents an area on the screen

◆ ssd1306_set_px_cb()

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.

Parameters
disp_drvpointer to the display driver structure
bufpointer to the memory range where you want to update the data
buf_wwidth of the range where you want to update the data
xx co-ordinate of pixel to update
yy co-ordinate of pixel to update
colormonochrome color setting, either full or clear
opaopacity value

◆ ssd1306_sleep_in()

void ssd1306_sleep_in ( void  )

Turn off the display.

◆ ssd1306_sleep_out()

void ssd1306_sleep_out ( void  )

Turn on the display.