![b59b14dfd97a718d998a7cdc839f08b3.png](https://i-blog.csdnimg.cn/blog_migrate/9b38f9fbbd26db3bd52bb797033def04.jpeg)
- 引言
对GPIO口的控制是入门一款芯片的必修课。本篇主要介绍了在FreeRTOS系统下,使用ESP8266检测按键按下后去控制LED灯的亮灭。
2. 技术要点
实现对ESP8266 GPIO口引脚输出高电平,以及输入电平的检测(包括输入中断函数)。
3. 电路原理图
![69f80b107eb43de2c97fb6962cf0da37.png](https://i-blog.csdnimg.cn/blog_migrate/1a1e55f390371cf9aac6edaea5be1c4e.jpeg)
4.代码
//按键引脚GPIO口的相关宏定义
中断函数
//检测到IO口按下按键后,控制GOIO1输出高低电平
static uint8 val = 0;
void io_intr_handler(void)
{
uint32 status = GPIO_REG_READ(GPIO_STATUS_ADDRESS); //读取中断状态
if (status & BUTTON_IO_PIN) {//如果是GPIO0引脚中断
if (val == 0) {
GPIO_OUTPUT_SET(LED_IO_NUM, 1);//GPIO2输出高电平
val = 1;
} else {
GPIO_OUTPUT_SET(LED_IO_NUM, 0);//GPIO2输出低电平
val = 0;
}
}
GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, status); //清除GPIO中断
}
打开关闭GPIO中断宏定义
#define ETS_GPIO_INTR_ENABLE() _xt_isr_unmask(1 << ETS_GPIO_INUM)
FreeRTOS程序下载地址:
boot.bin------------>0x00000
user1.4096.new.6.bin--->0x01000
2019年1月5日 首次发布
AI物联网智能硬件学习交流QQ群:679989924 一起进步,一起成长。