Vscode + PlatformIO + Arduino 搭建EPS32开发环境

2024-03-26 15:36

本文主要是介绍Vscode + PlatformIO + Arduino 搭建EPS32开发环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vscode + PlatformIO + Arduino 搭建EPS32开发环境

文章目录

  • Vscode + PlatformIO + Arduino 搭建EPS32开发环境
    • 1. Vscode插件安装
    • 2. 使用PlatformIO新建工程
    • 3.工程文件的基本结构
    • 4.一个基本的测试用例
    • Reference

1. Vscode插件安装

如何下载vscode这里不再赘述,完成基本的安装即可。使用vscode的时候我们需要安装 一些插件,比如ESP-IDEPlatformIO IDE,首先在插件一栏中搜索ESP-IDE,如图所示

Image

直接安装即可,然后搜索PlatformIO IDE,如图所示

Image

安装完毕后重启一下vscode。

2. 使用PlatformIO新建工程

PlatformIOPIO Home中找到新建工程New Project的选项,如图所示

Image

然后进入下图,新建一个自己的工程

Image

基本的功能按键如下所示

Image

3.工程文件的基本结构

.pio:该文件夹是 PlatformIO 的工作目录,包含编译生成的二进制文件、日志文件等。
.vscode:如果你在 VSCode 中使用 PlatformIO 插件,该文件夹包含了与项目相关的配置文件,如任务配置、调试配置等。
include:存放头文件。
lib:该文件夹用于存放项目依赖的库文件。你可以通过 PlatformIO 的库管理器安装所需的库,并它们会自动下载到该文件夹。
src:该文件夹是存放源代码的主目录。你的主要代码文件(通常是.cpp.h文件)应放在这个目录下。
test:用于存放项目的测试代码和测试数据。这个目录通常用于编写单元测试或集成测试的代码,用于验证项目的功能和逻辑是否正确。
.gitignore:如果你使用版本控制系统如Git进行项目管理,你可以在这个文件中指定需要忽略的文件和文件夹。
platformio.ini:这是 PlatformIO 的配置文件,用于指定项目的配置选项,如目标硬件平台、编译选项、上传设置等。
在 PlatformIO 创建的项目中,libinclude 目录都是用于存放代码文件的特定目录。它们的区别如下:
lib 目录:用于存放项目的依赖库文件。在这个目录下,可以放置项目需要引用的第三方库或自己编写的库。这些库文件通常是以源代码的形式提供,可以是单个文件或多个文件的集合。在构建过程中,这些库文件会被编译并链接到项目中。
include 目录:用于存放项目的头文件。头文件包含了函数、类、变量的声明,供其他源文件在编译时引用。在这个目录下,可以放置项目自定义的头文件,或者是一些需要被其他文件引用的第三方库的头文件。在编译过程中,编译器会在该目录下查找所需的头文件。总结一下,lib 目录主要用于存放项目的依赖库文件,而 include 目录用于存放项目的头文件。这样的组织结构可以方便地管理项目所需的库文件和头文件,并在构建过程中正确引用和链接它们。
主要的代码,我们可以写在 main.cpp 中,src 目录下的 main.cpp 文件基本等同于 Arduino IDE 中创建的 .ino 文件。
只不过,在 main.cpp 文件的第一行需要 #include <Arduino.h>,其余的代码部分内容一致。

4.一个基本的测试用例

实现,EPS32开发板的LED呼吸灯,这里使用的开发板是ESP32-CAMLED的引脚为4,记得将代码中的引脚改为你自己的开发板的LED引脚。
main.cpp文件内容如下:

#include <Arduino.h>
// 宏定义 GPIO 输出引脚
#define LED_PIN   4			// 更改为你的LED引脚void setup() {// 配置 GPIO 输出引脚pinMode(LED_PIN, OUTPUT);}void loop() {// 实现渐亮效果for(int i=0;i<256;i++) {// 设置亮度模拟值analogWrite(LED_PIN, i);// 延时 10msdelay(10);}// 实现渐灭效果for(int i=255;i>=0;i--) {// 设置亮度模拟值analogWrite(LED_PIN, i);// 延时 10msdelay(10);}
}

直接进行烧录即可。烧录的结果如下:

Image

烧录完毕后,可以看到LED在呼吸闪烁。

Reference

极客侠Geeksman

这篇关于Vscode + PlatformIO + Arduino 搭建EPS32开发环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848969

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA