完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
代码:全选#include "ets_sys.h"
#include "osapi.h" #include "gpio.h" #include "os_type.h" #include "user_config.h" static const int pin = 0; int flag = 0; void service (void) { flag=1; uint32 gpio_status = GPIO_REG_READ(GPIO_STATUS_ADDRESS); GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, gpio_status); } void ICACHE_FLASH_ATTR user_init() { // init gpio subsytem gpio_init(); gpio_output_set(0, 0, BIT0, 0); gpio_output_set(0, 0, 0, BIT5); gpio_pin_intr_state_set(GPIO_ID_PIN(5), GPIO_PIN_INTR_NEGEDGE); ETS_GPIO_INTR_ENABLE(); ETS_GPIO_INTR_ATTACH(service, NULL); while(true) { if(flag == 1) { if(GPIO_INPUT_GET(pin)) //read current status of led and set low if it is high now { //set gpio low gpio_output_set(0, BIT0, 0, 0); } else { // set gpio high gpio_output_set(BIT0, 0, 0, 0); } while(GPIO_INPUT_GET(5) == 0); // for long press of button stay inside this loop. Do not consider it as another input. flag = 0; } } } 我正在使用 ESP8266 nodemcu 开发板。我已在此链接中购买了电路板。 我已经完成了切换 LED 的程序(连接到 GPIO0)。我已将开关连接到 GPIO5。我附上了我的c程序的word文档。我试着用 ubuntu 编码。该程序在按下单个按钮时运行良好。但是当我继续按下按钮时,程序会错误触发。例如:如果我当前的 led 状态为 ON。当我长按时,它必须将其视为单按并且必须关闭。但是发生的事情是,当我按下它时它会关闭,当我松开按钮时它会再次打开。你能帮我找到问题吗? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
733 浏览 1 评论
552浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
445浏览 5评论
446浏览 4评论
417浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 23:19 , Processed in 0.656470 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号