使用VSCode创建第一个ESP-IDF项目

news/2024/5/11 0:21:01

1.在VSCode中安装ESP-IDF:

在 VS Code 中安装 ESP-IDF: 在-VS-Code-中安装-ESP-IDF、新建项目
安装过程中可能会遇到的问题: 解决-pip-安装第三方包时因-SSL-报错_pip-ssl error

在完全使用VSCode安装ESP-IDF环境后,不会存在ESP-IDF Terminal,而只能在VSCode中使用。所以我们可以通过执行esp-idf安装路径下的export.bat脚本来导出环境变量。下面是在任意路径下创建ESP-IDF Terminalbat 脚本

@echo off
set "startdir=%cd%"
start cmd.exe /K "cd {你的esp-idf路径}\esp\esp-idf && export.bat && cd %startdir%"

bat脚本执行结果:
在这里插入图片描述

2. 创建第一个项目

创建项目 idf.py create-project [项目名称]
在这里插入图片描述

进入项目目录并使用VSCode打开项目
在这里插入图片描述

添加ESP-IDF配置文件夹
在这里插入图片描述
编写 void app_main(void) 函数

#include <stdio.h>
#include <stdlib.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"static SemaphoreHandle_t sync_task_1;
static SemaphoreHandle_t sync_task_2;
static SemaphoreHandle_t sync_task_3;volatile int val = 5;static void vTask1(void *pvParameters)
{xSemaphoreTake(sync_task_1, portMAX_DELAY);vTaskDelay(pdMS_TO_TICKS(10));for(;;){printf("task 1 run with %d\r\n", val);val--;vTaskDelay(pdMS_TO_TICKS(500));}
}static void vTask2(void *pvParameters)
{xSemaphoreTake(sync_task_2, portMAX_DELAY);vTaskDelay(pdMS_TO_TICKS(10));for(;;){printf("task 2 run with %d\r\n", val);val++;vTaskDelay(pdMS_TO_TICKS(500));}
}static void vTask3(void *pvParameters)
{xSemaphoreTake(sync_task_3, portMAX_DELAY);vTaskDelay(pdMS_TO_TICKS(10));for(;;){printf("task 3 run\r\n");vTaskDelay(pdMS_TO_TICKS(500));}
}void app_main()
{//Allow other core to finish initializationvTaskDelay(pdMS_TO_TICKS(100));UBaseType_t uxPriorityMain = uxTaskPriorityGet(NULL);//Create semaphores to synchronizesync_task_1 = xSemaphoreCreateBinary();sync_task_2 = xSemaphoreCreateBinary();sync_task_3 = xSemaphoreCreateBinary();// create taskxTaskCreatePinnedToCore(vTask1, "task 1", 4096, NULL, uxPriorityMain + 1, NULL, tskNO_AFFINITY);xTaskCreatePinnedToCore(vTask2, "task 2", 4096, NULL, uxPriorityMain + 2, NULL, tskNO_AFFINITY);xTaskCreatePinnedToCore(vTask3, "task 3", 4096, NULL, uxPriorityMain + 3, NULL, tskNO_AFFINITY);// start taskxSemaphoreGive(sync_task_3);xSemaphoreGive(sync_task_2);xSemaphoreGive(sync_task_1);
}

选择COM端口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行项目:按顺序执行build-->flash--->monitor,命令行:idf.py build--->idf.py -p [端口] flash--->idf.py -p [端口] monitor
在这里插入图片描述
选择调试方式
在这里插入图片描述
打开监视器(monitor)
在这里插入图片描述

其他:

  1. esp-idf-监视器乱码_the_hudashao的博客-CSDN博客
  2. 安装驱动CP2102驱动
  3. ESP-IDF官方文档

http://wed.xjx100/news/201136.html

相关文章

SQL语言分类

数据查询语言DQL 数据操纵语言DML 数据定义语言DDL 数据控制语言DCL 1&#xff0e;数据查询语言DQL 数据查询语言Dor基本结构是由SELECT子句&#xff0c;FROM子句&#xff0c;WHERE子句组成的查询块:SELECT FROM WHERE 2.数据操纵语言DML 数据操纵语言DM主要有三种形式…

YOLO V1-V3 简单介绍

目录 1. YOLO 2. YOLO V1 3. YOLO V2 4. YOLO V3 5. YOLO V3 SPP网络 5.1 Mosaic 图像增强 5.2 SPP 模块 5.3 CIou Loss 5.4 Focal loss 1. YOLO YOLO 是目标检测任务强大的算法&#xff0c;将目标检测的问题转换边界框和相关概率的回归问题&#xff0c;是目标检测…

【HTTPS加密】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 1.HTTPS 是什么 1.1 运营商劫持 1.2 关于加密…

Java基础面试题突击系列3

&#x1f469;&#x1f3fb; 作者&#xff1a;一只IT攻城狮 &#xff0c;关注我不迷路 ❤️《java面试核心知识》突击系列&#xff0c;持续更新… &#x1f490; 面试必知必会学习路线&#xff1a;Java技术栈面试系列SpringCloud项目实战学习路线 &#x1f4dd;再小的收获x365天…

PHP CURL中传递cookie的方法

curl的cookie怎么使用?新手都很头疼的&#xff0c;curl的参数太多了&#xff0c;其中cookie部分就涉及了4个。 当然了&#xff0c;手册上明白写的curl的cookie是3个&#xff0c;但是嘛&#xff0c;不是还有个header的参数嘛&#xff0c;里面可以包含cookie. curl非常的好用。…

索引失效情况

左或者左右模糊匹配&#xff0c;like %xx&#xff0c;like %xx% select * from student where name like %三; 原因&#xff1a;B是按照索引值有序排列&#xff0c;只能根据前缀比较来确定数据&#xff0c;一旦左边是模糊的&#xff0c;显然无法确定到底是哪个索引值 对索引字…

Xcode 安装 cocoapods (避错版)

第一步&#xff1a;安装cocoapods 前&#xff0c; 检查环境&#xff1a;参考如下&#xff1a; mac 教程 安装cocoapod(100%成功)试过无数次_cocoapods安装_冯汉栩的博客-CSDN博客 1.首先查看ruby的版本。 ruby -v 2.查看rvm 版本.。 rvm -v 3.查看源。gem sources -l 4.移…

【密码产品篇】金融数据密码机密钥体系结构(对称密码体制)

【密码产品篇】金融数据密码机密钥体系结构&#xff08;对称密码体制&#xff09; 金融数据密码机采用基于"对称密码体制"的三层密钥体系结构&#xff1b;分别为"主密钥、次主密钥和数据密钥"三层。金融数据密码机中的密钥采用"自上而下逐层保护&quo…