ESP8266_SDK開發基礎(1)GPIO輸入與輸出、軟件定時器

買到的WiFi模塊型號是ESP-12S,除復位、串口、下載、電源外,還有6個口能夠進行DIY,分別是GPIO2GPIO4GPIOI5GPIO12GPIO13GPIO14,本文經過實例來演示如何經過一個按鍵控制一個小燈的閃爍。web

適應讀者:已完成開發環境的配置,並能導入SDK和編譯完成。windows

模塊的最小系統原理圖
圖片描述api

首先說下用到的工具及環境:app

一、使用的SDK是安信可官方下載的直接可編譯的
圖片描述eclipse

二、安信可官網下載的ESP8266開發環境,是用eclipse和cygwin在windows環境下載開發,使用仍是蠻簡單的
圖片描述函數

三、下載工具用FLASH_DOWNLOAD_TOOLS
圖片描述工具

四、下面直接上user_main.c文件的內容,只需修改該文件內容,其它文件先不要動this

/******************************************************************************
 * Copyright 2013-2014 Espressif Systems (Wuxi)
 *
 * FileName: user_main.c
 *
 * Description: entry file of user application
 *
 * Modification history:
 *     2014/1/1, v1.0 create this file.
*******************************************************************************/
#include "ets_sys.h"
#include "osapi.h"
#include "gpio.h"//io引腳

#include "user_interface.h"

#include "user_devicefind.h"
#include "user_webserver.h"

#if ESP_PLATFORM
#include "user_esp_platform.h"
#endif

void user_rf_pre_init(void)
{
}

/*定時器結構體 */
static os_timer_t os_timer;

/*******************************************************************************
 * 自定義引腳運行函數_定時器回調
*******************************************************************************/
void Task_Run(void){
    static bool status = false;

    if(GPIO_INPUT_GET(14)){//讀取GPIO14的引腳電平
        if (status == true){
            status = false;
            GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 0);//GPIO12輸出低電平
        }else{
            status = true;
            GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//GPIO12輸出高電平
        }
    }else{
        GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//GPIO12輸出高電平
    }
}
/******************************************************************************
 * FunctionName : user_init
 * Description  : entry of user application, init user function here
 * Parameters   : none
 * Returns      : none
*******************************************************************************/
void user_init(void)
{
    /*設置串口波特率*/
    uart_init(115200,9600);
    /*打印版本信息*/
    os_printf("\r\n");os_printf("SDK version:%s\n", system_get_sdk_version());
    /*配置GPIO12*/
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);
    /*配置GPIO14*/
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U,FUNC_GPIO14);
    /*配置軟件定時器 */
    os_timer_disarm(&os_timer);//關閉定時器
    os_timer_setfn(&os_timer,(ETSTimerFunc *) (Task_Run), NULL);//配置回調函數
    os_timer_arm(&os_timer,1000,true);//啓動定時器
}

編譯成功的標誌是這樣的
圖片描述spa

燒錄的步驟:code

一、將GPIO_0引腳接地,斷開模塊電源;二、打開ESP FLASH DOWNLOAD TOOL;三、按照本文的第二張圖片進行配置後,點擊START按鈕;四、打開模塊電源後就看到工具提示下載中;五、若失敗,請嘗試重複以上操做!

相關文章
相關標籤/搜索