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

Подключение кнопок к GPIO. Перестал работать ресет

Тема в разделе "Железные вопросы по esp8266", создана пользователем Br.Misha, 14 фев 2016.

  1. Br.Misha

    Br.Misha Новичок

    Сообщения:
    50
    Симпатии:
    3
    Имею многолетний опыт работы с микроконтроллерами и это первый случай, когда я не смог подключить обычную кнопку.
    Всего нужно подключить 4 кнопки, я их подключил GPIO 2, 3, 4, 14. Во избежание повреждения GPIO, я подключал кнопки на GND через 200 ом. Код инициализации следующий:
    Код (C):
    1. #define BTN_CALL_RECALL    3
    2. #define BTN_START        4
    3. #define BTN_STOP        2
    4. #define BTN_DELETE        14
    5.  
    6.     PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);    // переназначаем RX0 как GPIO
    7.     os_printf("BTN_STOP = %d\n", set_gpio_mode(BTN_STOP, GPIO_PULLUP, GPIO_INPUT));
    8.     os_printf("BTN_DELETE = %d\n", set_gpio_mode(BTN_DELETE, GPIO_PULLUP, GPIO_INPUT));
    9.     os_printf("BTN_CALL_RECALL = %d\n", set_gpio_mode(BTN_CALL_RECALL, GPIO_PULLUP, GPIO_INPUT));
    10.     os_printf("BTN_START = %d\n", set_gpio_mode(BTN_START, GPIO_PULLUP, GPIO_INPUT));
    11.  
    12.     //    зачем это я не совсем понимаю, но в работающем примере, который мне сбросили, это было
    13.     GPIO_OUTPUT_SET(BTN_STOP, 1);
    14.     GPIO_OUTPUT_SET(BTN_DELETE, 1);
    15.     GPIO_OUTPUT_SET(BTN_CALL_RECALL, 1);
    16.     GPIO_OUTPUT_SET(BTN_START, 1);
    Кнопки почему-то работать не захотели. Начал тыкать мультиметром для поиска проблемы, оказалось, что на некоторых (или на всех, не помню) портах, к которым подключены кнопки при не нажатой кнопке 3,3В (подтяжка, как понимаю), при нажатии - 3В (при этом на кнопке 0В). Получается, данные порты не были настроены как вход?
    Собственно, самое печальное то, что перестал работать ресет. Тоесть, при замыкании reset на gnd модуль не перезагружается. Если отключить питание на несколько мин, а потом включить, то ресет 1-2 раза может сработать, а потом опять перестает.

    Где я накосячил?
     
  2. tretyakov_sa

    tretyakov_sa Moderator Команда форума

    Сообщения:
    991
    Симпатии:
    151
    Впечатление такое, что шина GND в обрыве.
     
  3. Br.Misha

    Br.Misha Новичок

    Сообщения:
    50
    Симпатии:
    3
    странно... А у Вас была такая проблема?
     
  4. Br.Misha

    Br.Misha Новичок

    Сообщения:
    50
    Симпатии:
    3
    ещё один прикол - модуль перезагружается при касании пинцетом к металлическому корпусу (иногда даже при касании к GND). Думаю, б
     
  5. Sergeyrca

    Sergeyrca Новичок

    Сообщения:
    1
    Симпатии:
    0
    Столкнулся с такой же проблемой.
    Нашлось решение? Просто у меня такая же проблема сейчас, подскажите как победили
     

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