VScode + PlatformIO 了解

​Visual Studio Code

Visual Studio Code(简称 VS Code)是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全(又称 IntelliSense)、代码重构功能,并且内置了工具和 Git 版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装其他扩展以拓展软件功能

下载链接:VS Code

插件拓展十分丰富,真正使用建议下载大量插件,向我下载了Chinese中文、C/C++、CMake、Gcc、Mrakdown、Python、Tree、ROS、URDF、Vim、Amazon Q等插件;

PlatformIO(插件)

PlatformIO(也称 PIO)是一款开源且跨平台的嵌入式系统与产品程序的开发工具,可用于多种嵌入式架构与平台的开发。

PlatformIO支持多种嵌入式平台,例如STM32STM8ESP32Amtel AVRESP82668051等。

PlatformIO的核心组件是称为 “PIO Core” 的命令行工具,基于Python编写,它可以独立于集成开发环境与文本编辑器使用。PlatformIO 也为许多集成开发环境与文本编辑器开发了插件,包括AtomEclipseEmacsNetBeansVimVisual StudioVisual Studio Code

PlatformIO支持单元测试与远程开发功能,还附带了简易的串口调试工具。PlatformIO为不同的嵌入式平台提供不同的框架,开发者可以选用厂商提供的或者跨平台的 SDK,比如 Arduino 框架;同时 PlatformIO 也提供第三方代码库的引用与管理功能,能够直接在IDE内安装这些第三方库。

安装PlatformIO

在VS Code中找到扩展插件,在插件中搜索PlatformIO,即可安装。

(最好有梯子,没有基本不用了解了,哪怕看其他博主使用别人的.platformio文件。)

在这里插入图片描述

使用PlatformIO

在这里插入图片描述

界面介绍

在这里插入图片描述

新建工程

在这里插入图片描述

编译运行

鼠标放上面自然显示用法
在这里插入图片描述

工作区

随便一个新建文件;

platform.ini有这个文件详细信息:平台、板子系列、工作框架;

在这里插入图片描述

在这里插入图片描述

  • .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 文件。
在这里插入图片描述

参考:

博客园的一篇使用VS Code 搭建 platformio 平台
极克侠ESP32教程
arduino GitHub
espressif GitHub
platformio GitHub
platformio 资源搜索

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/908080.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

完美日记营销模式对开源 AI 智能名片 2 + 1 链动模式 S2B2C 商城小程序的启示

摘要:本文通过分析完美日记在营销中利用社会基础设施升级红利、网红与新流量平台、KOL 和私域流量等策略取得成功的案例,探讨其对开源 AI 智能名片 2 1 链动模式 S2B2C 商城小程序在营销推广、用户获取与留存、提升复购率等方面的启示,为商城…

Failed to install Visual Studio Code update

当关闭vsCode的时候,出现了下面的报错: 可能是之前将vscode文件换了位置导致的,并且vscode在桌面的图标也变成了下面这个: 解决方法: 找到上图路径的log文件并打开: 搜索电脑中的Code.exe文件 并粘贴到上…

python在word的页脚插入页码

1、插入简易页码 import win32com.client as win32 from win32com.client import constants import osdoc_app win32.gencache.EnsureDispatch(Word.Application)#打开word应用程序 doc_app.Visible Truedoc doc_app.Documents.Add() footer doc.Sections(1).Footers(cons…

Rust 力扣 - 73. 矩阵置零

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们使用两个变量记录矩阵初始状态的第一行与第一列是否存在0 然后我们遍历矩阵(跳过第一行与第一列),如果矩阵中元素为0则将该元素映射到矩阵第一行与矩阵第一列的位置置为0…

Python | Leetcode Python题解之第537题复数乘法

题目: 题解: class Solution:def complexNumberMultiply(self, num1: str, num2: str) -> str:real1, imag1 map(int, num1[:-1].split())real2, imag2 map(int, num2[:-1].split())return f{real1 * real2 - imag1 * imag2}{real1 * imag2 imag1…

tauri开发中如果取消了默认的菜单项,复制黏贴撤销等功能也就没有了,解决办法

取消默认的菜单项:清除tauri默认的菜单项,让顶部的菜单menu不显示-CSDN博客 就是通过配置空菜单,让菜单不显示,但是这个引发的问题就是复制黏贴撤销等功能也就没有了,解决办法: 新增加编辑下的子菜单&…

STM32F103C8T6学习笔记3--按键控制LED灯

1、实验内容 S4、S5分别接PB12和PB13,实验要求,按下S4,D1亮,D2灭;按下S5,D2亮,D1灭。 由于按键学习的是GPIO口的输入功能,和输出功能的配置略有区别。本次通过按键触发相应功能没有…

微服务核心——网关路由

目录 前言 一、登录存在的问题归纳 二、*微服务网关整体方案 三、认识微服务网关 四、网关鉴权实现 五、OpenFeign微服务间用户标识信息传递实现 六、微服务网关知识追问巩固 前言 本篇文章具体讲解微服务中网关的实现逻辑、用于解决什么样的问题。其中标题中标注* 涉…

如何压缩pdf文件的大小?5分钟压缩pdf的方法推荐

如何压缩pdf文件的大小?在现代办公和学习中,PDF文件因其稳定性和广泛的兼容性被广泛使用。然而,随着文件内容的增多,制作好的PDF文件常常变得过大,给使用带来了诸多不便。无论是电子邮件附件的发送,还是在线…

entos7离线安装xrdp和图形化桌面

1、查看Linux系统环境 cat /etc/os-release NAME"CentOS Linux" VERSION"7 (Core)" ID"centos" ID_LIKE"rhel fedora" VERSION_ID"7" PRETTY_NAME"CentOS Linux 7 (Core)" ANSI_COLOR"0;31" CPE_NAME…

RSA算法简介(原理,举例)

目录 RSA算法原理 1. 密钥生成 步骤: 2. 加密 3. 解密 RSA算法示例 示例步骤 加密示例 解密示例 RSA算法是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出。RSA算法的安全性基于大整数因子分解的难度,是…

海鲜图像分割系统:图像技术

海鲜图像分割系统源码&数据集分享 [yolov8-seg-C2f-DAttention&yolov8-seg-C2f-SCcConv等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Globa…

[react]10、react性能优化

1、列表&key 一、React更新流程 React在props或state发生改变时,会调用React的render方法,会创建一颗不同的树。React需要基于这两颗不同的树之间的差别来判断如何有效的更新UI。 同层节点之间相互比较,不会垮节点比较;不同类型的节点&am…

Android 托管 Github Action 发布 Github Packages ,实现 Mvn 免费自动化托管

自从多年前 JCenter 关闭服务之后,GSY 项目版本就一直发布在 Jitpack 上,如今每个月也都有大概 10w 左右下载,但是近年来时不时就会出现历史版本丢失的问题,而且有时候还不是某个具体版本丢失,而是版本里的某几个依赖突…

基于Javaweb+MySQL实现学生选课系统

学生选课系统设计报告 一、阶段:开发前的设置和思考 1.1 题目要求: 建立一个学生选课系统, 编写应用程序完成系统开发。 建立基本表: 学生(学号,姓名,性别,年龄,系别&#xff0…

centos7 安装python3.9.4,解决import ssl异常

本篇文章介绍如何在centos7中安装python3.9.4(下文简称python3),解决python3安装后import ssl模块失败问题,为什么我要在centos7中安装python呢,因为我需要在服务器中跑python数据处理脚本。 安装python3同时解决import ssl模块失败问题总共包…

Springboot 整合 Java DL4J 实现情感分析系统

🧑 博主简介:历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,…

计算机网络串联——打开网站的具体步骤

参与浏览网站的重要名词 1、MAC地址也叫硬件地址、物理地址。那这个东西就是设备你出厂的时候就会带有的,详情跳转,其构成如下: MAC地址用16进制表示,就是一共有12位,前六位他们会像一个国际的这种专门组织去申…

<项目代码>YOLOv8 夜间车辆识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

xilinx vitis 更换硬件平台——ZYNQ学习笔记5

1、重新生成硬件信息 2、选择带有bit信息 3、设施路径和名字 4、打开更新硬件选项 5、选择新的硬件信息 6、打开系统工程界面 7、复位硬件信息 更新完毕