STEP4:烧录程序
指令:idf.py -p COM3 flash
备注:因为会出现未知的错误,所以通过在网上查询答案,最终找到了解决方案,就是使用
指令:idf.py --no-ccache -p COM3 flash
STEP5:程序监控
指令:idf.py monitor
STEP6:运行可视化配置界面
指令:idf.py menuconfig
STEP7:编译环境数据清除
指令:idf.py fullclean
STEP8:快速切换指令
在实际的ESP32程序开发中,建议使用
来进行开发,改命令窗口支持ls指令。
更为重要的是支持 ctrl + 】退出当前命令窗口,可以继续执行编译和烧录等操作。
STEP9:在对应分区烧录bin文件。
注意:需要将“esptool.py”工具以及待烧录bin文件都放到工程文件夹下。(不是main文件夹)
指令:esptool.py --chip esp32-c3 --port COM3 --baud 115200 write_flash -z 0x210000 myFont.bin
强烈建议使用VSCodeUserSetup-x64-1.61.2这款代码编写软件进行ESP32的开发。
安装完成后,建议安装两个插件:一个是C/C++用于C语言常用关键词的代码编写;一个是Doxygen Document用于注释快速填写。
NOTE1:ESP32将日志信息打印到电脑上
1.首先需要添加头文件
#include "esp_log.h"
2.设置需要打印的log主体信息
static const char *TAG = "MAIN APP";
static const char *TAG1 = "MAIN APP WARNNING";
static const char *TAG2 = "MAIN APP ERROR";
3.设置需要打印的log具体信息
其中:ESP_LOGI正常打印信息,为绿色;ESP_LOGW打印报警信息,为黄色;ESP_LOGE打印错误信息,为红色。
ESP_LOGI(TAG, "system init V1.1");
ESP_LOGW(TAG1, "system warinning");
ESP_LOGE(TAG2, "system error");
最终结果:
NOTE2:如何在ESP32上使用FreeRTOS操作系统
1.首先需要添加头文件
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
2.创建任务
其中xTaskCreat中的第一个参数为任务名,2048为堆栈大小,如果创建的任务中定义了一个数组A[2050],则会超出分配的堆栈大小而出错,10为优先级大小。
xTaskCreate(test_task_example, "test_task_example", 2048, NULL, 10, NULL);
3.编写具体任务
static void test_task_example(void* arg)
{
for(;;) {
vTaskDelay(1000 / portTICK_PERIOD_MS);
printf("Sx task run \n");
}
}
4.运行示例:
NOTE3:使用VSCode编辑代码时如何消除头文件报错问题,且能够支持函数跳转
解决方案参考链接:VSCode解决头文件有红色波浪线_vscode头文件红色波浪线-CSDN博客
Step1:在VScode中使用快捷键 Ctrl + Shift + P
Step2:单击确认,在工作目录的 .vscode 中会多出一个 .vscode/c_cpp_properties.json 文件。
Step3:将所需路径添加进 ”includePath“ 内,记得在前一路径末尾打上 ,,需要注意的是,在每个路径后面加上 /**。(奇怪的是,有的地方加**会报错,相反加上*就没问题了,暂不清楚原因)
这样就可以把之前头文件的红色报错波浪线都消除,右击函数名也支持跳转啦。
NOTE4:如何添加相应.H文件和.C文件并添加到编译目录中
Step1:在工程文件夹中的main文件夹添加【include文件夹】和【src文件夹】,并将对应的头文件和源文件分别添加到相应文件中。
Step2:在VSCode中打开【main文件夹】下的 CMakeLists.txt文件。将对应的目录地址添加进去即可。
NOTE5:使用VSCode编辑代码时如何消除uint32_t报错问题
1、添加头文件#include “stdint.h”。
2、在c_cpp_properties.json文件中添加__CC_ARM即可。如下图:
NOTE6:使用set target指令报错问题
很可能是CMakeLists.txt文件的问题。
例如在Demo10工程中。能够成功执行set target指令的CMakeLists.txt文件为:
不能够成功执行set target指令的CMakeLists.txt文件为: