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

news2024/9/30 21:34:28

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 initialization
    vTaskDelay(pdMS_TO_TICKS(100));
    UBaseType_t uxPriorityMain = uxTaskPriorityGet(NULL);
    
    //Create semaphores to synchronize
    sync_task_1 = xSemaphoreCreateBinary();
    sync_task_2 = xSemaphoreCreateBinary();
    sync_task_3 = xSemaphoreCreateBinary();
    
    // create task
    xTaskCreatePinnedToCore(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 task
    xSemaphoreGive(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://www.coloradmin.cn/o/545164.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【利用AI刷面试题】AI:十道Vue面试题巩固一下知识

文章目录 1. 你在Vue中遇到过哪些性能问题&#xff1f;如何优化这些性能问题&#xff1f;2. Vue生命周期钩子函数有哪些&#xff1f;在什么情况下使用它们&#xff1f;3. Vue组件通信方式有哪些&#xff1f;它们各自适用于哪些场景&#xff1f;4. 你了解diff算法吗&#xff1f;…

Hadoop(Yarn)

文章目录 1、Yarn 资源调度器1.1 Yarn 基础架构1.2 Yarn 工作机制1.3 作业提交全过程1.4 Yarn 调度器和调度算法1.4.1 先进先出调度器&#xff08;FIFO&#xff09;1.4.2 容量调度器&#xff08;Capacity Scheduler&#xff09;1.4.3 公平调度器&#xff08;Fair Scheduler&…

万物可卷!低代码充满想象,能打敢战

数字中国建设如火如荼&#xff0c;我们也在积极拥抱这些机会。一火再火&#xff0c;疯狂和理性并存&#xff0c;高潮迭起的低代码赛道常兴常青&#xff0c;无论如何&#xff0c;不管是否承认&#xff0c;中国低代码市场已然觉醒&#xff0c;能打敢战&#xff01; 低代码开发是…

【AI实战】给类ChatGPT的大语言模型外挂私有知识库

【AI实战】给类ChatGPT的大语言模型外挂私有知识库 原理准备环境代码下载 chatglm-6b 模型权重文件下载 Embedding 模型 GanymedeNil/text2vec-large-chinese安装依赖库我的计算资源 外挂知识库开启服务外挂知识库 测试参考 本文使用 langChain 来给大语言模型 ChatGLM-6B 外挂…

【数据结构】——排序

排序的概念及其运用 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&am…

计算机图形学 | 实验八:Phong模型

计算机图形学 | 实验八&#xff1a;Phong模型 计算机图形学 | 实验八&#xff1a;Phong模型Phong模型光源设置 光照计算定向光点光源聚光 华中科技大学《计算机图形学》课程 MOOC地址&#xff1a;计算机图形学&#xff08;HUST&#xff09; 计算机图形学 | 实验八&#xff1a…

挖掘有价值的用户需求 需警惕5大误区

1、听取用户等于听从用户 在挖掘有价值的用户需求时&#xff0c;往往需要认真倾听用户的想法和需求&#xff0c;这样我们非常容易陷入到用户的思维中去。用户提到的需求&#xff0c;是他们真实想要的需求&#xff0c;但并不一定是客观需求&#xff0c;因为用户往往并不清楚他们…

【GDI+】旋转文本/斜体字

一、需求 想要绘制如下所示的斜体字&#xff0c;45度 二、分析&思路 Graphics类有个 RotateTransform方法&#xff0c;可以传入任意角度的值来旋转画板。但是这个方法的旋转中心是画板的左上角&#xff0c;所以直接单单用这个方法不能满足我们的需求。此外&#xff0c; G…

5个视频剪辑必备素材库、视频、配乐、音效全部免费下载。

推荐几个免费视频、配乐素材网站&#xff0c;可商用&#xff0c;建议收藏&#xff01; 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库网素材非常丰富&#xff0c;网站主要还是以设计类素材为主&#xff0c;高清视频素材也很多&#xff0c;像风景、植…

Jmeter响应断言

1、断言介绍 断言用于检查测试中得到的响应数据是否符合预期&#xff0c;用以保证性能测试过程中的数据交互与预期一致。 Request请求成功了&#xff0c;并不代表结果一定正确。所以通过断言&#xff0c;我们不再会被200状态码所迷惑&#xff0c;而是可以通过断言&#xff0c…

搭建新项目 前端环境 及启动项目前的相关配置

** 搭建新项目 前端环境 及启动项目前的相关配置 ** 文章目录 搭建新项目 前端环境 及启动项目前的相关配置 前言一、编程 语言及框架二、步骤1.打开 VS2.导入项目3、配置地址及 请求端口4、启动项目5、查看报错 的日志文件6、运行 命令 安装相关有依赖及 jar 包7、特别要注…

前端学习--Vue(3)初始化vue项目

一、侦听器 1.1 概念 watch 侦听器允许开发者监视数据的变化&#xff0c;从而针对数据的变化做特定的操作 <div id"app"><span>字典查询</span><input type"text" v-model.lazy"uname"></div><script src&qu…

浅析视频技术与AI智能识别技术在智慧矿山场景中的应用

一、背景分析 能源与矿业是我国国民经济的重要物质生产部门和支柱产业之一&#xff0c;同时也是一个安全事故多发的高危行业&#xff0c;施工阶段的现场管理对工程成本、进度、质量及安全等至关重要。国家矿山安监局陆续发布(矿安〔2022)128号)文、(矿安综〔2023〕5号)文推动矿…

数据结构之树和二叉树

目录 一、树简介 二、二叉树 1、简介 2、二叉树的性质 3、满二叉树和完全二叉树 三、二叉树的遍历 四、二叉树遍历代码实现 五、二叉搜索树&#xff08;Binary Search Tree&#xff09; 1、简介 2、二插搜索树的局限性 六、平衡二叉搜索树&#xff08;AVL树&#x…

【Spring框架】--04.单元测试JUnit、事务、资源操作Resources、国际化、数据校验Validation、提前编译AOT

文章目录 6.单元测试&#xff1a;JUnit6.1整合JUnit56.1.1搭建子模块6.1.2引入依赖6.1.3添加配置文件6.1.4添加java类6.1.5测试 6.2整合JUnit46.2.添加依赖6.2.2测试 7.事务7.1JdbcTemplate7.1.1简介7.1.2准备工作7.1.3实现CURD①装配 JdbcTemplate②测试增删改功能③查询数据返…

docker 使用记录

要点&#xff1a; 参考&#xff1a;https://www.cnblogs.com/yurenjun/p/15991062.html 一 打包部署步骤 参考&#xff1a; Docker教程&#xff08;超全总结&#xff09;_生信技术的博客-CSDN博客 参考部署基础操作&#xff1a;如何用Docker打包部署自己写的项目&#xff1f;…

中介中心性算法原理与源码解析(Between Centrality)

前言 中介中心性(Between Centrality)&#xff0c;或者叫介数中心性&#xff0c;是基于最短路径对关系图谱中节点的中心性进行测量的典型图论算法。和其它的图论中心性算法一样&#xff0c;中介中心性用来衡量社会关系网络中&#xff0c;个人、企业或者其它的实体在整个网络中…

stm32wb15cc蓝牙芯片学习

由于项目选型需要&#xff0c;初次接触stm32的蓝牙芯片&#xff0c;需要总体做一些学习。也记些笔记&#xff0c;防止遗忘。 一、主要的ST的蓝牙芯片 简单介绍一下主要ST的蓝牙芯片 1.1. STM32WB系列 这个系列的芯片是一个双核的MCU&#xff0c;相当于一个普通的STM32 MCU和…

全面分析低代码平台:各大热门产品详细对比

低代码平台彻底改变了企业构建和部署定制应用程序的方式。它们提供了一种用最少的代码&#xff0c;更快、更高效地开发软件的方法。使得公司在加快创新的同时节省了时间和资源。对于一些想进行数字化转型&#xff0c;选择低代码平台入门的中小企业来讲&#xff0c;应该选择哪个…

NTP时间服务器同步时钟系统安装汇总分享

在现代科技发展的背景下&#xff0c;各种设备的时间同步变得越来越重要。同步时钟管理系统的应用可以让多个设备在时间上保持一致&#xff0c;提高工作效率和安全性&#xff0c;为各个行业的发展提供了重要的支持。 一、同步时钟系统介绍 同步时钟管理系统的应用范围非常广泛&…