ESP32学习笔记:通用环境配置及常见错误

NOTE0:程序通用编译烧录步骤
NOTE1:ESP32将日志信息打印到电脑上
NOTE2:如何在ESP32上使用FreeRTOS操作系统
NOTE3:使用VSCode编辑代码时如何消除头文件报错问题,且能够支持函数跳转
NOTE4:如何添加相应.H文件和.C文件并添加到编译目录中
NOTE5:使用VSCode编辑代码时如何消除uint32_t报错问题
NOTE6:使用set target指令报错问题
NOTE0:程序通用编译烧录步骤:
STEP1:进入到对应的程序目录
指令: cd +文件路径
STEP2:设置目标烧录芯片型号
指令: idf.py set-target esp32c3
STEP3:编译程序
指令: idf.py build
备注:因为会出现未知的错误,所以通过在网上查询答案,最终找到了解决方案,就是使用
指令: idf.py --no-ccache build

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文件为:

  • 30
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
ESP32的FreeRTOS使用上与传统的FreeRTOS有一些区别。在ESP32,基本不需要单独配置FreeRTOSConfig.h文件,因为ESP-IDF的menuconfig功能可以对所有涉及到的内容进行配置,使用起来更加直观和便利。主要的数据类型说明,有一个重要的数据类型是TickType_t。 在ESP32的魔改版FreeRTOS,很少使用正经的事件集,而是使用ESP-IDF提供的更方便的事件循环。这使得在ESP32使用事件循环更加方便。 另外,ESP32的分区表是采用二进制格式而不是CSV文件。ESP-IDF提供了gen_esp32part.py工具来配置和构建分区表。默认情况下,使用的是默认分区表。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【ESP32+freeRTOS学习笔记-(一)freeRTOS介绍】](https://blog.csdn.net/weixin_45499326/article/details/128226443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ESPIDF开发ESP32学习笔记ESP32上的FreeRTOS】](https://blog.csdn.net/qq_40500005/article/details/114794039)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

moon2shine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值