ESP8266 GPIO 16 нельзя использовать в качестве кнопки - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть следующий код, но я не вижу сообщений в журнале:

void gpio_int_cb(int pin, void *arg) {
    LOG(LL_INFO, ("button pushed"));
    (void) pin;
    (void) arg;
}

extern "C" enum mgos_app_init_result mgos_app_init(void) {

    int pin_button = 16;

    mgos_gpio_set_pull(pin_button, MGOS_GPIO_PULL_DOWN);
    mgos_gpio_set_mode(pin_button, MGOS_GPIO_MODE_INPUT);
    mgos_gpio_enable_int(pin_button);
    mgos_gpio_set_int_handler(pin_button, MGOS_GPIO_INT_EDGE_POS, gpio_int_cb, NULL);

}

Я что-то упустил?

1 Ответ

0 голосов
/ 28 ноября 2018

ESP8266 GPIO16 не может быть настроен с прерываниями.Из технического справочника ESP8266 :

API, связанные с GPIO16 В отличие от других интерфейсов ввода-вывода, GPIO16 (XPD_DCDC) относится к модулю RTC, а не к общему модулю GPIO.Может использоваться для пробуждения чипа во время глубокого сна;его можно настроить на режим ввода или вывода;, но не может вызвать прерывание ввода-вывода.
...