ESP8266-学习点滴(1)

1、首先不可逾越的文档阅读:https://wiki.ai-thinker.com/esp8266/docs

2、学习点滴,查漏补缺

1)运行模式和烧录模式

2)管脚定义

3)ESP8266EX管脚清单(ESP8266_Pin_List.xls)

2.1 GPIO端口各种模式的区别 (参考:https://blog.csdn.net/baidu_37366055/article/details/80060962 和 https://blog.csdn.net/weixin_42108484/article/details/80511568

2.2 GPIO 输出寄存器

     a) 输出使能寄存器 GPIO_ENABLE_W1TS

     b) 输出禁用寄存器 GPIO_ENABLE_W1TC

     c) 输出使能状态寄存器 GPIO_ENABLE

     d) 输出低电平寄存器 GPIO_OUT_W1TC

     e) 输出高电平寄存器 GPIO_OUT_W1TS

     f)输出状态寄存器 GPIO_OUT

2.3 GPIO 输入寄存器

      输入状态寄存器 GPIO_IN

2.4 GPIO 中断寄存器

    a) 中断类型寄存器 GPIO_PIN12    (中断禁用,上升沿触发,下降沿触发,双沿触发,低电平,高电平)

    b) 中断状态寄存器 GPIO_STATUS 

    c) 清中断寄存器 GPIO_STATUS_W1TC

2.5 GPIO16 对应接口

      GPIO16(XPD_DCDC) 不属于通用GPIO模块,属于RTC模块。可以用来在深度睡眠时候唤醒整个芯片,可以配置为输入或者输出模式,但无法触发 IO 中断。使用接口如下:

    a). gpio16_output_conf(void):  将 GPIO16 配置为输出模式。

    b). gpio16_output_set(uint8 value):

         从 GPIO16 输出高电平/低电平,需要先配置为输出模式。

    c). gpio16_input_conf(void)

         将 GPIO16 的输入电平状态,需要先配置为输入模式。

    d). gpio16_input_get(void)

         读取 GPIO16 的输入电平状态,需要先配置为输入模式。

3 参数配置

    应用场景

    1)  配置 MTDI 输出高电平,并能使其上拉;

    2)  配置 MTDI 为输入模式,并获取其电平状态;

    3)  配置 MTDI 为下降沿触发中断。

3.1 应用场景1参数配置

    Step 1) 配置 MTDI 为 GPIO 模式

           PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);

           该语句的作用是向 PERIPHS_IO_MUX_MTDI_U 寄存器的第4位、第5位写1。

PERIPHS_IO_MUX_MTDI_U 寄存器的第4位和第5位置1表示将 MTDI 配置为 GPIO 功能。 PERIPHS_IO_MUX_MTDI_U 寄存器。

    Step 2) 配置 MTDI 输出高电平

            GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);

    该语句有两个作用:

向 GPIO_ENABLE_W1TS 的寄存器第12位写1,该位置1表示使能 MTDI 的输出功能。
向 GPIO_OUT_W1TS 的寄存器第12位写1,该位置1表示将 MTDI 输出为高电平。
备注:需要 MTDI 配置输出低电平,将该函数额第二个参数设置为0即可。

    Step 3) 使能 MTDI 上拉

             PIN_PULLUP_EN(PERIPHS_IO_MUX_MTDI_U);

             该语句作用是向 PERIPHS_IO_MUX_MTDI_U 的第7位写1.该位置 1 表示使能MTDI 的上拉功能。

备注:如果需要关闭 MTDI 的上拉功能,请使用如下语句

          PIN_PULLUP_DIS(PERIPHS_IO_MUX_MTDI_U);

3.2 应用场景2参数配置

      Step 1) 配置 MTDI 为 GPIO 模式

                  PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);

                  该语句的作用: 向 PERIPHS_IO_MUX_MTDI_U 寄存器的第4位、第5位写 1。PERIPHS_IO_MUX_MTDI_U 寄存器的第4位和第5位置1 表示 将 MTDI 配置为 GPIO 功能。

       Step 2) 配置 MTDI 为输入模式

                   GPIO_DIS_OUTPUT(GPIO_ID_PIN(12));

       Step 3) 获取 MTDI 管脚的电平状态

                   Uint8 level = 0;

                   level = GPIO_INPUT_GET(GPIO_ID_PIN(12));

                   GPIO_INPUT_GET(GPIO_ID_PIN(12)) 语句实际是获取 GPIO_IN 寄存器第 12 位的状态,该寄存器的值反映的是对应的管脚的输入电平(必须使能对应的管脚的输入功能,该寄存器的状态才有效)。

备注:

        如果 MTDI 的电平为高电平,那么 GPIO_INPUT_GET 的返回值为 1,level = 1;

        如果 MTDI 的电平为低电平,那么 GPIO_INPUT_GET 的返回值为 0,level = 0;
————————————————
12-F

3)AT指令:见文档,很详细 https://wiki.ai-thinker.com/esp8266/examples/at_demo

4)常见问题:

结合这张

4)模型选择及内存分配

猜你喜欢

转载自blog.csdn.net/uaime/article/details/100407146