Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

GPIO debug

Тема в разделе "Раздел для начинающих", создана пользователем 702, 16 янв 2020.

  1. 702

    702 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Здравствуйте.
    Собираю во FreeRTOS SDK прошивку ESP8266 для макета , содержащего I2C устройство.
    Поскольку сейчас под рукой только ESP-01, временно решил реализовать I2C программно на GPIO_0
    и GPIO_2. Драйвер в процессе работы постоянно перепрограммирует GPIO пины на вход и на выход.
    Каждое такое перепрограммирование вызывает вывод в консоль длиннющей строки с состоянием
    пина, видимо откуда-то из внутренностей библиотеки GPIO .
    Как это можно отключить?
     
  2. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.239
    Симпатии:
    1.348
  3. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.239
    Симпатии:
    1.348
    У чипа ESP8266 нет аппаратного I2C. Только "ногодрыгом", т.е. программно на GPIOx...
     
    exeland нравится это.
  4. 702

    702 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Спасибо, это я находил.
    Функции esp_log_level_set(...) в качестве параметра нужно передать тег. Какое значение тега для управления логом на GPIO?
    Где можно прочитать или как догадаться?
     
  5. 702

    702 Новичок

    Сообщения:
    10
    Симпатии:
    0
    У меня нет описания аппаратных регистров GPIO от ESP8266. Поэтому я не знаю, какой сакральный смысл в рекомендации в даташите использовать
    в качестве I2C_SCL ногу GPIO_14. Возможно, он есть.
     
  6. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    625
    Симпатии:
    73
    В заголовочном файле исчерпывающая информация
    * @param tag Tag of the log entries to enable. Must be a non-NULL zero terminated string.
    * Value "*" resets log level for all tags to the given value.
    Тот уровень логирования, который установили для метки (тега) и будет использоваться когда для данной метки будет вызвана esp_log_write
    Если установили
    Код (Text):
    1. esp_log_level_set("my-app", ESP_LOG_ERROR);
    2. esp_log_level_set("my-i2c", ESP_LOG_DEBUG);
    То выполняя esp_log_write для "my-app" и "my-i2c"
    Код (Text):
    1. esp_log_write(ESP_LOG_ERROR, "my-app", "error 1");
    2. esp_log_write(ESP_LOG_WARN, "my-app", "warning 2");
    3. esp_log_write(ESP_LOG_DEBUG, "my-app", "debug 3");
    4. esp_log_write(ESP_LOG_ERROR, "my-i2c", "error 4");
    5. esp_log_write(ESP_LOG_WARN, "my-i2c", "warning 5");
    6. esp_log_write(ESP_LOG_DEBUG, "my-i2c", "debug 6");
    Вы получите в логе не 6 сообщений, а 4, в соответствии с установленными уровнями логирования для меток, одно от "my-app" и три от "my-i2c".

    Можете установить свой обработчик вывода лога вызвав esp_log_set_putchar, направить вывод не в uart, а куда угодно.
     
  7. 702

    702 Новичок

    Сообщения:
    10
    Симпатии:
    0
    В заголовочном файле esp_log.h значения тега для управления логом GPIO я не нашел. Если таковое имеется,
    прошу ткнуть меня в строчку.

    Задача у меня не сделать свой лог, а отключить имеющийся: только для GPIO.

    Такой способ "отключения" лога не годится, - функция printf будет молотить впустую, жрать процессорное время и греть небо.
     
  8. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    625
    Симпатии:
    73
    Если вы посмотрите на выводимые сообщения в логе, то там найдете тот самый тег о котором спрашивали
    Первый ответ на ваш вопрос #2 установите для этого тега ESP_LOG_NONE
     
  9. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    625
    Симпатии:
    73
    В драйвере ESP8266_RTOS_SDK-3.2/components/esp8266/driver/gpio.c
    объявлен тег
    Код (Text):
    1. static const char *GPIO_TAG = "gpio";
    Информационные сообщения от драйвера при вызове gpio_config
    Код (Text):
    1. ESP_LOGI(GPIO_TAG, "GPIO[%d]| InputEn: %d| OutputEn: %d| OpenDrain: %d| Pullup: %d| Pulldown: %d| Intr:%d ", ...
     
  10. 702

    702 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Вот, собственно, только это было и надо.
    Спасибо.
     
  11. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.239
    Симпатии:
    1.348
    @Алексей. - концепция ардуино в действии и распространяется на всё. :)
    Рожден ещё один участник сообщества ардуино-попрошаек.
    Надо было дать полный скетч сразу, а не направление где и как это меняется.
     

Поделиться этой страницей