首页 » 科学 » ESP8266-GPIO16不能中断若何检测输入状态?触摸开关的运用_状况_按键

ESP8266-GPIO16不能中断若何检测输入状态?触摸开关的运用_状况_按键

少女玫瑰心 2024-12-20 13:43:34 0

扫一扫用手机浏览

文章目录 [+]

开始:

1)头文件 #include \"大众driver/gpio16.h\"大众

ESP8266-GPIO16不能中断若何检测输入状态?触摸开关的运用_状况_按键 科学

2)ESP8266的GPIO16属于RTC模块,不能触发中断,与其他GPIO的配置办法不同,配置函数如下

void gpio16_output_conf(void); //初始化为输出模式void gpio16_output_set(uint8 value); //输出指定电平void gpio16InputConf(void); //配置为输入模式uint8 gpio16InputGet(void); //获取管脚输入 3)由于不能中断,无法监控其状态,通过循环或定时器回调检讨//检讨输入的回调void ICACHE_FLASH_ATTR gpio16_timer_cb(){ TimerCounter++;//目的设置频率 //事先定义宏定义(获取状态的值)和一个变量记录旧状态 if(Pin16_OldState!=SWITCH_Pin16_State){Pin16_OldState=SWITCH_Pin16_State;//记录新状态GPIO_OUTPUT_SET(GPIO_ID_PIN(12), Pin16_OldState);//继电器1//Pin16_OldState=!Pin16_OldState;//取反 //os_delay_us(20); }} void ICACHE_FLASH_ATTRGPIO16_Timer_init(){ os_timer_disarm(&timer); os_timer_setfn(&timer,(os_timer_func_t )gpio16_timer_cb,NULL); //set callback func os_timer_arm(&timer,500,1); //set timer interval 1000ms}

扩展知识:正常的中断如何调用?干货!
触摸按钮(14)掌握开关(13)

static void GPIO_INTR_Handler(void arg){

//读取GPIO中断状态;寄存器,获取中断信息

u32 GPIOStatus = GPIO_REG_READ(GPIO_STATUS_ADDRESS);

//全局关闭GPIO中断

ETS_GPIO_INTR_DISABLE();

os_delay_us(20);

//打消中断状态信息

GPIO_REG_WRITE( GPIO_STATUS_W1TC_ADDRESS, GPIOStatus);//clear interrupt status

if ( GPIOStatus & BIT(14)){ //中断源来自

RelayStatus = !RelayStatus;//状态取反

GPIO_OUTPUT_SET(GPIO_ID_PIN(13), RelayStatus);//开或关(高电平触发)

//按键同步状态到客户端

if(RelayStatus)

{

//状态发布

}else{

//状态发布

}

}

//开启GPIO中断

ETS_GPIO_INTR_ENABLE();

}

//初始化中断

void ICACHE_FLASH_ATTR

Touch_INTR_init(){

ETS_GPIO_INTR_DISABLE();//全局关闭GPIO中断

ETS_GPIO_INTR_ATTACH(&GPIO_INTR_Handler, NULL );//设置中断函数

gpio_pin_intr_state_set(GPIO_ID_PIN(TOUCH_PIN1),1); //上升沿触发中断 按键14,gpio.h;;;DISABLE\POSEDGE\NEGEDGE\LOLEVEL\HILEVEL

GPIO_REG_WRITE( GPIO_STATUS_W1TC_ADDRESS, BIT(TOUCH_PIN1)); //remove the GPIO interrupt mark of this pin

ETS_GPIO_INTR_ENABLE();//启用中断

}

在 user_init()里初始化即可

Touch_INTR_init();//把稳修正GPIO的针脚及部分变量的定义。

手动触发和远程触发可以状态互动(展现出来)

手机端远程掌握

触摸按键

标签:

相关文章

科技赋能未来,IT之家要闻盘点创新与变革

随着科技的飞速发展,我国信息技术产业取得了举世瞩目的成就。近日,IT之家要闻栏目为大家盘点了一系列科技创新和产业变革的精彩瞬间,让...

科学 2024-12-28 阅读0 评论0

程序转DLL,技术革新背后的详细介绍

随着计算机技术的飞速发展,软件编程已经成为现代社会不可或缺的一部分。在众多的编程语言中,C/C++因其高性能、跨平台等优势而备受青...

科学 2024-12-28 阅读0 评论0

30岁SEO,探索网络营销的黄金时代

随着互联网的飞速发展,网络营销已经成为企业市场竞争的重要手段。在这个信息爆炸的时代,如何让品牌在众多竞争者中脱颖而出,成为了许多企...

科学 2024-12-28 阅读0 评论0