ESP8266 RTOS v3.2 nvs_flash

/*
   This example code is in the Public Domain (or CC0 licensed, at your option.)

   Unless required by applicable law or agreed to in writing, this
   software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
   CONDITIONS OF ANY KIND, either express or implied.
*/

#include
#include

#include "esp_system.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/uart.h"
#include "nvs_flash.h"

//#define WIFI_SSID "wifissid"
//#define WIFI_PSWD "wifipasswd"


void nvs_test_Task(void *pvParameters);
TaskHandle_t nvs_test_Handle;


void delay_ms(uint32_t nms)
{
    vTaskDelay(nms / portTICK_PERIOD_MS);
}

/******************************************************************************
 * FunctionName : app_main
 * Description  : entry of user application, init user function here
 * Parameters   : none
 * Returns      : none
*******************************************************************************/
void app_main(void)
{
    uart_set_baudrate(UART_NUM_0, 115200); 
    delay_ms(1000);
    printf("\r\n");
    printf("SDK version:%s\n", esp_get_idf_version());

    if(ESP_OK == nvs_flash_init())
    {
        xTaskCreate((TaskFunction_t) nvs_test_Task,
                (const char *) "nvs_test_Task",        /*lint !e971 Unqualified char types are allowed for strings and single characters only. */
                (configSTACK_DEPTH_TYPE) 2048,
                (void *) NULL,
                (UBaseType_t) 3,
                (TaskHandle_t *)&nvs_test_Handle);

    }

}

void nvs_test_Task(void *pvParameters)
{
    uint8_t wifi_ssid[32] = {0};
    uint8_t wifi_pswd[16] = {0};
    size_t len = 0;
    nvs_handle wifi_handle;
    while(1)
    {
        //nvs_open("wifi", NVS_READWRITE, &wifi_handle);

        //nvs_set_str(wifi_handle, "ssid", WIFI_SSID);
        //nvs_set_str(wifi_handle, "pswd", WIFI_PSWD);

        //nvs_commit(wifi_handle);
        //nvs_close(wifi_handle);

        nvs_open("wifi", NVS_READONLY, &wifi_handle);
        len = 32;
        nvs_get_str(wifi_handle, "ssid", (char *)wifi_ssid, &len);
        len = 16;
        nvs_get_str(wifi_handle, "pswd", (char *)wifi_pswd, &len);

        printf("ssid = %s\r\n", wifi_ssid);
        printf("pswd = %s\r\n", wifi_pswd);
        nvs_close(wifi_handle);

        delay_ms(1000);
        vTaskDelete(NULL);
    }
}

你可能感兴趣的:(esp8266)