ESP8266学习【5】——外设及API使用示例

一、GPIO操作:

设置GPIO输出示例:

// 管脚功能选择(参数1【PIN_NAME】管脚名、参数2【FUNC】管脚功能)
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U,	FUNC_GPIO4);	// GPIO4设为IO口

// 将相应管脚设为输出模式,并输出对应电平(参数1【gpio_no】、参数2:输出电平)
GPIO_OUTPUT_SET(GPIO_ID_PIN(4),1);			// IO4 = 1(高电平)

设置GPIO输入示例:

PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U,	FUNC_GPIO0);	// GPIO_0设为IO口
GPIO_DIS_OUTPUT(GPIO_ID_PIN(0));	// GPIO_0失能输出(默认),即管脚输入
PIN_PULLUP_DIS(PERIPHS_IO_MUX_GPIO0_U);	// GPIO_0失能内部上拉(默认)
PIN_PULLUP_EN(PERIPHS_IO_MUX_GPIO0_U);	// GPIO_0使能内部上拉

GPIO_INPUT_GET(GPIO_ID_PIN(0))        //读取IO状态

设置GPIO中断:

ETS_GPIO_INTR_DISABLE();	// 关闭GPIO中断功能
ETS_GPIO_INTR_ATTACH((ets_isr_t)GPIO_INTERRUPT,NULL);	// 注册中断回调函数
gpio_pin_intr_state_set(GPIO_ID_PIN(0),GPIO_PIN_INTR_NEGEDGE);	// GPIO_0下降沿中断
ETS_GPIO_INTR_ENABLE();		// 打开GPIO中断功能

// 读取GPIO中断状态
S_GPIO_INT = GPIO_REG_READ(GPIO_STATUS_ADDRESS);

// 清除中断状态位(如果不清除状态位,则会持续进入中断)
GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, S_GPIO_INT);

 

 相关API:

ESP8266学习【5】——外设及API使用示例_第1张图片

ESP8266学习【5】——外设及API使用示例_第2张图片

ESP8266学习【5】——外设及API使用示例_第3张图片

 

二、软件定时器:

// 关闭软件定时器
os_timer_disarm(&OS_Timer_1);	

// 设置定时器
// 参数一:要设置的定时器;参数二:回调函数(需类型转换);参数三:回调函数的参数
os_timer_setfn(&OS_Timer_1,(os_timer_func_t *)OS_Timer_1_cb, NULL);	

// 使能(启动)ms定时器
// 参数一:要使能的定时器;参数二:定时时间(单位:ms);参数三:1=重复/0=只一次
os_timer_arm(&OS_Timer_1, time_ms, time_repetitive);  

 

ESP8266学习【5】——外设及API使用示例_第4张图片

ESP8266学习【5】——外设及API使用示例_第5张图片

ESP8266学习【5】——外设及API使用示例_第6张图片

ESP8266学习【5】——外设及API使用示例_第7张图片

 

三、硬件定时器:

hw_timer_init(0, 1);				// ①:初始化硬件定时器【参数1:中断源】【参数2:是否重复】
hw_timer_set_func(HW_Timer_INT);	// ③:注册硬件定时器中断回调函数
hw_timer_arm(500000);				// ④:设置定时器参数(单位us,参数必须<=1,677,721)

ESP8266学习【5】——外设及API使用示例_第8张图片

ESP8266学习【5】——外设及API使用示例_第9张图片

ESP8266学习【5】——外设及API使用示例_第10张图片

 

四、FLASH操作:

spi_flash_erase_sector(0x77);	// 擦除0x77扇区		【参数:扇区编号】

// 向Flash写数据(参数1=【字节地址】、参数2=写入数据的指针、参数3=数据长度)
spi_flash_write(0x77*4096, (uint32 *)A_W_Data, sizeof(A_W_Data));

spi_flash_read(0x77*4096, (uint32 *)A_R_Data, sizeof(A_W_Data));	// 向Flash读数据

ESP8266学习【5】——外设及API使用示例_第11张图片

ESP8266学习【5】——外设及API使用示例_第12张图片

ESP8266学习【5】——外设及API使用示例_第13张图片

 

 

你可能感兴趣的:(#,ESP8266)