31 #ifndef MAIN_SSD1306_H
32 #define MAIN_SSD1306_H
34 #include "driver/spi_master.h"
53 #define OLED_CONTROL_BYTE_CMD_SINGLE 0x80
54 #define OLED_CONTROL_BYTE_CMD_STREAM 0x00
55 #define OLED_CONTROL_BYTE_DATA_SINGLE 0xC0
56 #define OLED_CONTROL_BYTE_DATA_STREAM 0x40
59 #define OLED_CMD_SET_CONTRAST 0x81
60 #define OLED_CMD_DISPLAY_RAM 0xA4
61 #define OLED_CMD_DISPLAY_ALLON 0xA5
62 #define OLED_CMD_DISPLAY_NORMAL 0xA6
63 #define OLED_CMD_DISPLAY_INVERTED 0xA7
64 #define OLED_CMD_DISPLAY_OFF 0xAE
65 #define OLED_CMD_DISPLAY_ON 0xAF
68 #define OLED_CMD_SET_MEMORY_ADDR_MODE 0x20
69 #define OLED_CMD_SET_HORI_ADDR_MODE 0x00
70 #define OLED_CMD_SET_VERT_ADDR_MODE 0x01
71 #define OLED_CMD_SET_PAGE_ADDR_MODE 0x02
72 #define OLED_CMD_SET_COLUMN_RANGE 0x21
73 #define OLED_CMD_SET_PAGE_RANGE 0x22
76 #define OLED_CMD_SET_DISPLAY_START_LINE 0x40
77 #define OLED_CMD_SET_SEGMENT_REMAP_0 0xA0
78 #define OLED_CMD_SET_SEGMENT_REMAP_1 0xA1
79 #define OLED_CMD_SET_MUX_RATIO 0xA8
80 #define OLED_CMD_SET_COM_SCAN_MODE 0xC8
81 #define OLED_CMD_SET_DISPLAY_OFFSET 0xD3
82 #define OLED_CMD_SET_COM_PIN_MAP 0xDA
83 #define OLED_CMD_NOP 0xE3
86 #define OLED_CMD_SET_DISPLAY_CLK_DIV 0xD5
87 #define OLED_CMD_SET_PRECHARGE 0xD9
88 #define OLED_CMD_SET_VCOMH_DESELCT 0xDB
91 #define OLED_CMD_SET_CHARGE_PUMP 0x8D
94 #define OLED_CMD_HORIZONTAL_RIGHT 0x26
95 #define OLED_CMD_HORIZONTAL_LEFT 0x27
96 #define OLED_CMD_CONTINUOUS_SCROLL 0x29
97 #define OLED_CMD_DEACTIVE_SCROLL 0x2E
98 #define OLED_CMD_ACTIVE_SCROLL 0x2F
99 #define OLED_CMD_VERTICAL 0xA3
101 #define I2CAddress 0x3C
102 #define SPIAddress 0xFF
SSD1306_t dev
device for oled
void ssd1306_contrast(SSD1306_t *dev, int contrast)
void ssd1306_software_scroll(SSD1306_t *dev, int start, int end)
void ssd1306_hardware_scroll_line(SSD1306_t *dev, int page, ssd1306_scroll_type_t scroll)
void i2c_contrast(SSD1306_t *dev, int contrast)
void spi_hardware_scroll(SSD1306_t *dev, ssd1306_scroll_type_t scroll)
void ssd1306_deinit(SSD1306_t *dev)
void ssd1306_wrapped_display_text(SSD1306_t *dev, int line, char *text)
void i2c_master_init(SSD1306_t *dev, int16_t sda, int16_t scl, int16_t reset)
void spi_display_image(SSD1306_t *dev, int page, int seg, uint8_t *images, int width)
void spi_master_init(SSD1306_t *dev, int16_t GPIO_MOSI, int16_t GPIO_SCLK, int16_t GPIO_CS, int16_t GPIO_DC, int16_t GPIO_RESET)
bool spi_master_write_data(SSD1306_t *dev, const uint8_t *Data, size_t DataLength)
bool spi_master_write_command(SSD1306_t *dev, uint8_t Command)
void ssd1306_flip(uint8_t *buf, size_t blen)
void ssd1306_display_image(SSD1306_t *dev, int page, int seg, uint8_t *images, int width)
void spi_hardware_scroll_line(SSD1306_t *dev, int page, ssd1306_scroll_type_t scroll)
uint8_t ssd1306_rotate(uint8_t ch1)
void ssd1306_fadeout(SSD1306_t *dev)
void spi_init(SSD1306_t *dev, int width, int height)
void ssd1306_scroll_text(SSD1306_t *dev, char *text, int text_len, bool invert)
void ssd1306_invert(uint8_t *buf, size_t blen)
void i2c_init(SSD1306_t *dev, int width, int height)
void ssd1306_hardware_scroll(SSD1306_t *dev, ssd1306_scroll_type_t scroll)
void spi_contrast(SSD1306_t *dev, int contrast)
void i2c_hardware_scroll_line(SSD1306_t *dev, int page, ssd1306_scroll_type_t scroll)
void ssd1306_init(SSD1306_t *dev)
bool spi_master_write_byte(spi_device_handle_t SPIHandle, const uint8_t *Data, size_t DataLength)
void ssd1306_clear_line(SSD1306_t *dev, int page, bool invert)
void i2c_display_image(SSD1306_t *dev, int page, int seg, uint8_t *images, int width)
void ssd1306_display_text(SSD1306_t *dev, int page, char *text, int text_len, bool invert)
void ssd1306_scroll_clear(SSD1306_t *dev)
void i2c_hardware_scroll(SSD1306_t *dev, ssd1306_scroll_type_t scroll)
void ssd1306_dump(SSD1306_t dev)
void ssd1306_clear_screen(SSD1306_t *dev, bool invert)
spi_device_handle_t _SPIHandle