关于非 OS 版本和 OS 版本 GPIO 的操作有些不同。
【非 OS 版本】
设置 MTDO 为输入模式,并且配置为下降沿触发中断方式。
Code: Select all
void ICACHE_FLASH_ATTR gpio_init(void)
{
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U,FUNC_GPIO15); //GPIO 选择功能
GPIO_DIS_OUTPUT(GPIO_ID_PIN(15)); //配置为输入模式
ETS_GPIO_INTR_DISABLE(); //关闭 GPIO 中断
ETS_GPIO_INTR_ATTACH(GPIO_INTERRUPT,NULL); //注册中断函数
gpio_pin_intr_state_set(GPIO_ID_PIN(15),GPIO_PIN_INTR_NEGEDGE); //下降沿触发
ETS_GPIO_INTR_ENABLE() ; //使能 GPIO 中断
}
【OS 版本】
设置MTDO为输入模式,并且配置为下降沿触发中断方式。
void ICACHE_FLASH_ATTR gpio_init(void)
Code: Select all
{
GPIO_ConfigTypeDef gpio_in_cfg; //定义 GPIO 初始化结构体
gpio_in_cfg.GPIO_IntrType = GPIO_PIN_INTR_NEGEDGE; //下降沿触发
gpio_in_cfg.GPIO_Mode = GPIO_Mode_Input; //输入模式
gpio_in_cfg.GPIO_Pin = GPIO_Pin_15; //GPIO 选择使能
gpio_config(&gpio_in_cfg); //初始化函数
GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, BIT(GPIO_UART_IN_NUM));
gpio_intr_handler_register(interrupt_GPIO_UART); //注册中断函数
_xt_isr_unmask(1 << ETS_GPIO_INUM); //使能 GPIO 中断
}
【配置说明】
请参考 开发指南文档清单 中的 “0D-ESP8266__Pin_List__Release_15-11-2014.xlsx” 文档。
- 在 Reg 页签可以查阅到 GPIO 功能选择相关的寄存器。
- 在 Digital Die Pin List 页签中可以查到通用的 GPIO 以及复用功能,其中 FUNCTION 列就是功能的配置选项。
如果需要配置为 FUNCTION3,应该往寄存器对应的位中写2,如果需要配置为 FUNCTION2,应该往寄存器对应的位中写 1,以此类推。
例如:代码中 PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U,FUNC_GPIO15); 这里的FUNC_GPIO15 的值为 3,根据表格中 FUNCTION4 列可知,这是将 PERIPHS_IO_MUX_MTDO_U 配置为 GPIO 功能。