一:简述
在这次,主要是记录一下自己对8266IO口的使用(代码为nonos版本)。
硬件:ESP-LAUNCHER开发板(使用IO13为按键输入,IO12为指示灯输出)
要求:开发板上电,指示灯不亮;按下按键,指示灯亮;放开手,指示灯不亮。
二:查看文档
文档截图:
选定GPIO管脚(以GPIO12为例):PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12)
设定该管脚为输出且输出高电平:GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1)
设定该管脚为输入:GPIO_DIS_OUTPUT(GPIO_ID_PIN(12))
三:程序
#include "driver/uart.h" //串口0需要的头文件
#include "osapi.h" //串口1需要的头文件
#include "gpio.h" //端口控制需要的头文件
void delay(uint32 Delay_Time)//毫秒延时函数,不可延时太久
{
for(;Delay_Time > 0;Delay_Time--)
{
os_delay_us(1000);
}
}
void user_init()//初始化
{
uart_init(115200, 115200);//设置串口0和串口1的波特率
//IO口练习
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);//选择指示灯IO口
GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//默认指示灯不亮
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13);//选择按键IO口
GPIO_DIS_OUTPUT(GPIO_ID_PIN(13));//设置IO13为输入
while(1)
{
if(GPIO_INPUT_GET(GPIO_ID_PIN(13)) == 0)
{
delay(10);//延时去抖
if(GPIO_INPUT_GET(GPIO_ID_PIN(13)) == 0)
{
GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 0);
}
}
}
}
void user_rf_pre_init()
{
}