main/u8g2_esp32_hal.c

changeset 55
43362bb8f3c0
parent 39
c3fcc599a119
child 56
8c88a3d8ecf2
--- a/main/u8g2_esp32_hal.c	Fri Apr 10 11:51:40 2020 +0200
+++ b/main/u8g2_esp32_hal.c	Sat Jun 13 22:07:22 2020 +0200
@@ -10,11 +10,12 @@
 #include "u8g2_esp32_hal.h"
 
 static const char *TAG = "u8g2_hal";
-static const unsigned int I2C_TIMEOUT_MS = 5000;
+static const unsigned int I2C_TIMEOUT_MS = 1000;
 
 static spi_device_handle_t handle_spi;      // SPI handle.
 static i2c_cmd_handle_t    handle_i2c;      // I2C handle.
 static u8g2_esp32_hal_t    u8g2_esp32_hal;  // HAL state data.
+static bool		   initialized = false;
 
 #undef ESP_ERROR_CHECK
 #define ESP_ERROR_CHECK(x)   do { esp_err_t rc = (x); if (rc != ESP_OK) { ESP_LOGE("err", "esp_err_t = %d", rc); assert(0 && #x);} } while(0);
@@ -111,21 +112,27 @@
 
 		case U8X8_MSG_BYTE_INIT: {
 			if (u8g2_esp32_hal.sda == U8G2_ESP32_HAL_UNDEFINED ||
-					u8g2_esp32_hal.scl == U8G2_ESP32_HAL_UNDEFINED) {
+					u8g2_esp32_hal.scl == U8G2_ESP32_HAL_UNDEFINED || initialized) { // here i test if already initialized, if it's the case don't do it again!
 				break;
 			}
 
 		    i2c_config_t conf;
 		    conf.mode = I2C_MODE_MASTER;
+			ESP_LOGI(TAG, "sda_io_num %d", u8g2_esp32_hal.sda);
 		    conf.sda_io_num = u8g2_esp32_hal.sda;
 		    conf.sda_pullup_en = GPIO_PULLUP_ENABLE;
+			ESP_LOGI(TAG, "scl_io_num %d", u8g2_esp32_hal.scl);
 		    conf.scl_io_num = u8g2_esp32_hal.scl;
 		    conf.scl_pullup_en = GPIO_PULLUP_ENABLE;
+			ESP_LOGI(TAG, "clk_speed %d", I2C_MASTER_FREQ_HZ);
 		    conf.master.clk_speed = I2C_MASTER_FREQ_HZ;
+			ESP_LOGI(TAG, "i2c_param_config %d", conf.mode);
 		    ESP_ERROR_CHECK(i2c_param_config(I2C_MASTER_NUM, &conf));
+			ESP_LOGI(TAG, "i2c_driver_install %d", I2C_MASTER_NUM);
 		    ESP_LOGI(TAG, "I2C gpio_sda: %d gpio_scl: %d clk_speed: %d master_num: %d",
 			u8g2_esp32_hal.sda, u8g2_esp32_hal.scl, I2C_MASTER_FREQ_HZ, I2C_MASTER_NUM);
 		    ESP_ERROR_CHECK(i2c_driver_install(I2C_MASTER_NUM, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0));
+		    initialized=true;
 			break;
 		}
 

mercurial