本示例演示如何开启一个任务,并间隔打印 “Hello World
首次使用项目时,必须先执行 make menuconfig 后方可编译
准备
硬件:
-
ESP32 模组
-
USB转TTL
软件:
-
Cygwin + Eclipse 开发环境
-
串口工具
代码
/* Hello World Example 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 <stdio.h> #include "freertos/FreeRTOS.h" //可以看到idf是基于FreeRtos系统 #include "freertos/task.h" #include "esp_system.h" #include "esp_spi_flash.h" void app_main() { printf("Hello world!\n"); //打印内容 /* Print chip information */ esp_chip_info_t chip_info; esp_chip_info(&chip_info); //系统初始化 printf("This is ESP32 chip with %d CPU cores, WiFi%s%s, ", //打印系统信息 chip_info.cores, (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "", (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : ""); printf("silicon revision %d, ", chip_info.revision); printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024), (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external"); for (int i = 10; i >= 0; i--) { printf("Restarting in %d seconds...\n", i); vTaskDelay(1000 / portTICK_PERIOD_MS); //延时函数 单位ms } printf("Restarting now.\n"); fflush(stdout); //清除读写缓冲区,立即把输出缓冲区的数据进行物理写入 esp_restart(); //系统重启 }
烧录
运行
结束