对于 ESP32,在 Mongoose OS 下,我正在尝试编写一些代码来检测按钮是否被按下(GPIO 引脚被拉到 GND)。我写了下面的代码,但它不断打印按钮被按下,所以它认为按钮总是被按下,除非我真的按下它。当我按住它时,输出停止。该按钮连接在 GPIO 引脚和 GND 之间,没有上拉电阻,因为有内部上拉。我想知道我的代码是否错误,并感谢您的意见,谢谢。
我在下面粘贴了相关代码:
// GPIO 36
#define BTN_MOB 36
#ifdef BTN_MOB
mgos_gpio_set_mode(BTN_MOB, MGOS_GPIO_MODE_INPUT);
#endif
static void button_cb(int pin, void *pParam)
{
if(pin == BTN_MOB)
LOG(LL_INFO, ("***** BUTTON PRESSED\r\n"));
}
mgos_gpio_set_button_handler(BTN_MOB,
MGOS_GPIO_PULL_UP,
MGOS_GPIO_INT_EDGE_NEG,
100 /* debounce ms */,
button_cb, /* callback handler */
NULL); /* arguments to callback handler */