# ST7567 display driver For esp-idf, same idea as the st7920 driver For both SPI and I2C displays ## Usage I2C version ```c #include i2c_master_bus_config_t bus_cfg = { .i2c_port = I2C_NUM_0, .sda_io_num = GPIO_NUM_21, .scl_io_num = GPIO_NUM_22, .clk_source = I2C_CLK_SRC_DEFAULT, .glitch_ignore_cnt = 7, .flags.enable_internal_pullup = true, }; i2c_master_bus_handle_t bus; i2c_new_master_bus(&bus_cfg, &bus); st7567_config_i2c_t cfg = { .i2c_bus = bus, .i2c_addr = ST7567_I2C_ADDR_DEFAULT, // 0x3F, .i2c_clock_speed_hz = 400000, .contrast = 0x38, // good for generic modules at 3.3v }; st7567_device_t dev; st7567_init_i2c(&cfg, &dev); st7567_draw_pixel(&dev, 10, 10); st7567_update_screen(&dev); ``` SPI version ```c #include const spi_bus_config_t buscfg = { .mosi_io_num = GPIO_NUM_18, .sclk_io_num = GPIO_NUM_19, .miso_io_num = GPIO_NUM_20, // default c6 spi pins? .max_transfer_sz = 0, .quadhd_io_num = -1, .quadwp_io_num = -1, }; spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); const st7567_config_spi_t cfg = { .contrast = 0x35, .cs_gpio = GPIO_NUM_16, .dc_gpio = GPIO_NUM_17, .rst_gpio = GPIO_NUM_21, .spi_clock_speed_hz = 0, .spi_host = SPI2_HOST, }; st7567_device_t dev; st7567_init_spi(&cfg, &dev); st7567_draw_pixel(&dev, 10, 10); st7567_update_screen(&dev); ```