/* * u8g2_esp32_hal.h * * Created on: Feb 12, 2017 * Author: kolban */ #ifndef U8G2_ESP32_HAL_H_ #define U8G2_ESP32_HAL_H_ #include #include "driver/gpio.h" #include "driver/spi_master.h" #include "driver/i2c.h" #define U8G2_ESP32_HAL_UNDEFINED (gpio_num_t) (-1) #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 I2C_MASTER_FREQ_HZ 1000000 // I2C master clock frequency #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 typedef struct { gpio_num_t clk; gpio_num_t mosi; gpio_num_t sda; // data for I²C gpio_num_t scl; // clock for I²C gpio_num_t cs; gpio_num_t reset; gpio_num_t dc; i2c_port_t master_num; } u8g2_esp32_hal_t ; typedef struct { spi_device_handle_t handle_spi; i2c_cmd_handle_t handle_i2c; u8g2_esp32_hal_t u8g2_esp32_hal; } u8g2_esp_hal_handle_t; #define U8G2_ESP32_HAL_DEFAULT {U8G2_ESP32_HAL_UNDEFINED, U8G2_ESP32_HAL_UNDEFINED, U8G2_ESP32_HAL_UNDEFINED, U8G2_ESP32_HAL_UNDEFINED, U8G2_ESP32_HAL_UNDEFINED, U8G2_ESP32_HAL_UNDEFINED, U8G2_ESP32_HAL_UNDEFINED, I2C_NUM_0} void u8g2_esp32_hal_init(u8x8_t *u8x8, u8g2_esp32_hal_t u8g2_esp32_hal_param); void u8g2_esp32_hal_init(u8x8_t *u8x8, u8g2_esp32_hal_t u8g2_esp32_hal_param); uint8_t u8g2_esp32_spi_byte_cb(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr); uint8_t u8g2_esp32_i2c_byte_cb(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr); uint8_t u8g2_esp32_gpio_and_delay_cb(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr); #endif /* U8G2_ESP32_HAL_H_ */