【发布时间】:2018-11-27 21:14:23
【问题描述】:
我有以下代码,但我看不到任何日志消息:
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);
}
我错过了什么吗?
【问题讨论】:
-
当用电压表按下开关时,我会检查开关是否实际工作。还要检查 pin_button 应该是 5(我在 pin 号和物理 pin 之间找不到任何文档)。此外,我会在启用它之前安装处理程序(避免未处理中断的不太可能但可能的竞争条件,因为启用时尚未安装处理程序)。您总是可以通过读取引脚上的当前值来测试它是否会发生变化。
-
@Fred。该图仅供参考...我使用的是 GPIO16,不幸的是它不能与中断一起使用
标签: c mongoose-os