#include <stdbool.h>
#include "i2cdev.h"
#include "driver/i2c.h"
#include "assert.h"
#include "lvgl.h"
#include "pin_defs.h"
Go to the source code of this file.
|
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...
|
|
◆ 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
◆ 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
◆ 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
◆ OLED_PIXEL_PER_PAGE
#define OLED_PIXEL_PER_PAGE 8 |
◆ OLED_WIDTH
◆ lvgl_i2c_driver_init()
bool lvgl_i2c_driver_init |
( |
int |
sda_pin, |
|
|
int |
scl_pin, |
|
|
int |
speed_hz |
|
) |
| |
Initialize LVGL I2C Master.
- Parameters
-
sda_pin | gpio number for I2C master data |
scl_pin | gpio number for I2C master clock |
speed_hz | I2C 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
-
drv | pointer to the display driver structure |
area | represents an area on the screen |
color_map | represents 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
-
drv | pointer to the display driver structure |
area | represents 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_drv | pointer to the display driver structure |
buf | pointer to the memory range where you want to update the data |
buf_w | width of the range where you want to update the data |
x | x co-ordinate of pixel to update |
y | y co-ordinate of pixel to update |
color | monochrome color setting, either full or clear |
opa | opacity value |
◆ ssd1306_sleep_in()
void ssd1306_sleep_in |
( |
void |
| ) |
|
◆ ssd1306_sleep_out()
void ssd1306_sleep_out |
( |
void |
| ) |
|