Skip to content

Commit 5889d3b

Browse files
committed
Merge branch 'bugfix/fix_multi_i2c_device_communication_execption' into 'master'
example: fix touch IC tt21100 read data error See merge request adf/esp-adf-internal!1206
2 parents caa3d70 + 2859ec2 commit 5889d3b

File tree

1 file changed

+7
-3
lines changed
  • examples/display/music_player/components/lcd_touch/src

1 file changed

+7
-3
lines changed

examples/display/music_player/components/lcd_touch/src/tt21100.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ esp_err_t tt21100_tp_init(void)
7474
{
7575
esp_err_t ret_val = i2c_init();
7676

77-
uint8_t reg_val = 0;
77+
uint16_t reg_val = 0;
7878
do {
79-
tt21100_read(&reg_val, sizeof(reg_val));
79+
tt21100_read((uint8_t *)&reg_val, sizeof(uint16_t));
8080
vTaskDelay(pdMS_TO_TICKS(20));
81-
} while (0);
81+
} while ((reg_val != 0x0002) && ((reg_val & 0xFF00) != 0xFF00)) ;
8282
return ret_val;
8383
}
8484

@@ -129,6 +129,10 @@ esp_err_t tt21100_tp_read(void)
129129
/* Get report data length */
130130
ret_val |= tt21100_read(&data_len, sizeof(data_len));
131131
ESP_LOGD(TAG, "Data len : %u", data_len);
132+
if (data_len == 0) {
133+
ESP_LOGE(TAG, "tt21100 read invalid data length (%d)", data_len);
134+
return ESP_FAIL;
135+
}
132136

133137
/* Read report data if length */
134138
if (data_len < 0xff) {

0 commit comments

Comments
 (0)