ESP32提供非常完善的API手册和示例工程,我们在ESP32上开发项目时,尽可能参考示例工程完成基础外设的验证,再结合实际业务逻辑,完成产品开发。
API手册:
API 参考 - - ‒ ESP-IDF 编程指南 release-v4.1 文档
SDK中的源码:
示例工程使用
- 复制.c文件,添加Makefile
- 复制Kconfig.projbuild文件配置
- 查看Readme使用
添加Kconfig.projbuild时,需要先进入menuconfig修改属性后退出保存,此时重新build会重新编译整个工程,如果只出现编译一点,那就是没保存或Kconfig异常
源码下载方式参考:
Log源码
/* 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 "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
#include "esp_log.h"
#define CHIP_NAME "ESP32"
static const char *TAG = "MAIN APP";
void app_main(void)
{
printf("Hello world!\n");
/* Print chip information */
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("This is %s chip with %d CPU core(s), WiFi%s%s, ",
CHIP_NAME,
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");
printf("Minimum free heap size: %d bytes\n", esp_get_minimum_free_heap_size());
ESP_LOGI(TAG, "system init V1.1");
while(1){
printf("system run ...\n");
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}