123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #ifndef __SSD1306_H__
- #define __SSD1306_H__
- #include <driver/spi_master.h>
- void i2c_master_init();
- esp_err_t oled_ssd1306_init();
- // I2C CONFIG
- #define I2C_MASTER_NUM I2C_NUM_1 /*!< I2C port number for master dev */
- #define I2C_MASTER_TX_BUF_DISABLE 0 /*!< I2C master do not need buffer */
- #define I2C_MASTER_RX_BUF_DISABLE 0 /*!< I2C master do not need buffer */
- #define SSD1306_OLED_ADDR 0x3C /*!< slave address for ssd1306 oled display */
- #define WRITE_BIT I2C_MASTER_WRITE /*!< I2C master write */
- #define READ_BIT I2C_MASTER_READ /*!< I2C master read */
- #define ACK_CHECK_EN 0x1 /*!< I2C master will check ack from slave*/
- #define ACK_CHECK_DIS 0x0 /*!< I2C master will not check ack from slave */
- #define ACK_VAL 0x0 /*!< I2C ack value */
- #define NACK_VAL 0x1 /*!< I2C nack value */
- // Control bytes (page 20)
- #define COMMAND_MODE 0x00
- #define SINGLE_COMMAND_MODE 0x80
- #define DATA_MODE 0x40
- // Fundamental Command (page 28)
- #define DISPLAY_LINE_START 0x40
- #define CONTRAST_CONTROL 0x81
- #define DISABLE_ENTIRE_DISPLAY 0xA4
- #define DISPLAY_ON_REG02 0xA5
- #define NORMAL_DISPLAY 0xA6
- #define DISPLAY_INVERSE 0xA7
- #define DISPLAY_RESET 0xAE
- #define DISPLAY_ON 0xAF
- // Hardware Config (page 31)
- #define DISPLAY_START_LINE 0x40
- #define SEGMENT_REMAP 0xA0
- #define MULTIPLEX_RATIO 0xA8
- #define COM_OUTPUT_SCAN_DIR 0xC0
- #define DISPLAY_OFFSET 0xD3
- #define COM_PINS_HARDWARE_CONFIG 0xDA
- // Timing & Driving Scheme (page 32)
- #define DISPLAY_CLK_RATIO 0xD5
- #define PRE_CHARGE_PER 0xD9
- #define VCOMH_DESELECT_LEVEL 0xDB
- #define NOOPERATION 0xE3
- // Charge Pump (page 60)
- #define CHARGE_PUMP_SET 0x8D
- #endif
|