本文主要是介绍espidf自学笔记(二)helloworld,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
点灯已经掌握了,接下来就是程序员的点灯,helloworld了,主要就是打印,上代码:
/** SPDX-FileCopyrightText: 2010-2022 Espressif Systems (Shanghai) CO LTD** SPDX-License-Identifier: CC0-1.0*/#include <stdio.h>
#include <inttypes.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_chip_info.h"
#include "esp_flash.h"void app_main(void)
{printf("Hello world!\n");/* Print chip information */esp_chip_info_t chip_info;uint32_t flash_size;esp_chip_info(&chip_info);printf("This is %s chip with %d CPU core(s), %s%s%s%s, ",CONFIG_IDF_TARGET,chip_info.cores,(chip_info.features & CHIP_FEATURE_WIFI_BGN) ? "WiFi/" : "",(chip_info.features & CHIP_FEATURE_BT) ? "BT" : "",(chip_info.features & CHIP_FEATURE_BLE) ? "BLE" : "",(chip_info.features & CHIP_FEATURE_IEEE802154) ? ", 802.15.4 (Zigbee/Thread)" : "");unsigned major_rev = chip_info.revision / 100;unsigned minor_rev = chip_info.revision % 100;printf("silicon revision v%d.%d, ", major_rev, minor_rev);if(esp_flash_get_size(NULL, &flash_size) != ESP_OK) {printf("Get flash size failed");return;}printf("%" PRIu32 "MB %s flash\n", flash_size / (uint32_t)(1024 * 1024),(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");printf("Minimum free heap size: %" PRIu32 " bytes\n", esp_get_minimum_free_heap_size());for (int i = 10; i >= 0; i--) {printf("Restarting in %d seconds...\n", i);vTaskDelay(1000 / portTICK_PERIOD_MS);}printf("Restarting now.\n");fflush(stdout);esp_restart();
}
打印了一些esp32板子的基本信息,可以看出简单调用了一些信息,另外可以看出来,idf的sleep用的都是freertos中的vtaskdelay方法,不懂的api去官方查一下就行,现在是读程序的阶段,等到自己上手写就是八百个语法错误,再到自己写项目,就变成了八万个错误,目前没啥坑但是不要高兴得太早。。。
对了,idf的打印很规整,分下面等级:
ESP_LOGE(TAG, "Hello world!. ERROR.");
ESP_LOGW(TAG, "Hello world!.WARN.");
ESP_LOGI(TAG, "Hello world!.INFO.");
ESP_LOGD(TAG, "Hello world!.DEBUG.");
ESP_LOGV(TAG, "Hello world!.VERBOSE.");
编译固件的时候同样通过menuconfig选择打印到哪个级别,打印管理这块像样的用的都是这一套,就不会很乱啥都打了
这篇关于espidf自学笔记(二)helloworld的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!