49 lines
1.7 KiB
C
49 lines
1.7 KiB
C
|
/*
|
||
|
* u8g2_esp32_hal.h
|
||
|
*
|
||
|
* Created on: Feb 12, 2017
|
||
|
* Author: kolban
|
||
|
*/
|
||
|
|
||
|
#ifndef U8G2_ESP32_HAL_H_
|
||
|
#define U8G2_ESP32_HAL_H_
|
||
|
#include <clib/u8g2.h>
|
||
|
|
||
|
#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_ */
|