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 资源搜索

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信公众号(或微信浏览器)获取openId(网页授权)

下单支付需要openId 首先授权去拿到code --然后调用后太换取openId 1.去拿取code 下图中执行到window.location.href ( redirect_uri 传入当前路径-)–执行后重新跳转到当前页面–但是路径上会带上code参数 //然后调用后台方法–将code传给后台得到 o…

Steam deck 倒腾日记 - 安装Windows软件,玩上黑神话悟空

Steam deck 倒腾日记 关于Steam Deck基本信息性能特点游戏兼容性 问题一: 软键盘输入问题二: 系统切换问题三: 安装运行Window 软件关于Proton如何运行 问题四: 优化网络问题黑神话.悟空PS参考 关于Steam Deck Steam Deck是一款由Valve开发的便携式游戏PC,它搭载了A…

人工智能的前世今生:从幻想走向现实

在科技飞速发展的今天,人工智能(AI)已经成为我们生活中不可或缺的一部分。从智能手机的语音助手到自动驾驶汽车,AI的应用无处不在。但是,人工智能的发展历程并非一帆风顺,它经历了从兴起、寒冬到复兴的曲折…

ARM base instruction -- bfc

Bitfield Clear sets a bitfield of <width> bits at bit position <lsb> of the destination register to zero, leaving the other destination bits unchanged. 位域清除将目标寄存器位位置<lsb>处<width>位的位域设置为零&#xff0c;而保留其他目…

预处理详解(一)

目录 预定义符号define定义常量define定义宏宏替换的规则宏与函数的对比 预定义符号 C语⾔设置了⼀些预定义符号&#xff0c;可以直接使用&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进⾏编译的源⽂件 __LINE__ //⽂件当前的⾏号 __DATE__ //⽂件被编译的⽇…

2024-10-30 学习人工智能的Day18

Python包和模块 当使用Python编程时&#xff0c;包&#xff08;Packages&#xff09;和模块&#xff08;Modules&#xff09;是两个关键的概念&#xff0c;它们有助于组织、管理和复用代码。 1. 模块&#xff08;Modules&#xff09; 1.1 什么是模块 一个.py 文件就是一个模…

从 TCP 友好性看传输优化

再看一遍最传统 TCP AIMD 吞吐的推导&#xff1a; 这个积分用离散求和表示很简单&#xff0c;一个锯齿发送的报文总数为&#xff1a; ( W 2 0 ) ( W 2 1 ) ( W 2 2 ) . . . ( W 2 ( W − W 2 ) ) ≈ 3 ⋅ W 2 8 (\dfrac{W}{2}0)(\dfrac{W}{2}1)(\dfrac{W}{2}2)...(\df…

css 对称按钮,中间斜平行间隔,两头半圆

序&#xff1a;稍一看&#xff0c;挺好看&#xff0c;看也简单&#xff0c;实现起来应该也是一样&#xff0c;没什么难度&#xff0c;分分钟完成。后面将其他的UI做了七七八八后&#xff0c;到这个按钮的时候&#xff0c;不知怎么&#xff0c;突然卡机了&#xff0c;想不起来怎…

DDRPHY数字IC后端设计实现系列专题之后端设计导入,IO Ring设计

本章详细分析和论述了 LPDDR3 物理层接口模块的布图和布局规划的设计和实 现过程&#xff0c;包括设计环境的建立&#xff0c;布图规划包括模块尺寸的确定&#xff0c;IO 单元、宏单元以及 特殊单元的摆放。由于布图规划中的电源规划环节较为重要&#xff0c; 影响芯片的布线资…

几种因素对磁控溅射AlN薄膜择优取向的影响

几种因素对磁控溅射AlN薄膜择优取向的影响 AlN材料在微电子产业中有广泛的应用&#xff0c;AlN薄膜在多种器件中都扮演着重要角色。 晶体生长中的择优取向是指在多晶材料中&#xff0c;晶粒沿着某一特定晶向或晶面生长得更快或更优先的现象。这种取向通常与材料的制备工艺和生长…

基于Java SpringBoot和Vue社区医院诊所医疗挂号管理系统设计

摘要 本文旨在设计并实现一个基于Java SpringBoot和Vue的社区医院管理系统&#xff0c;以解决当前社区医院管理中存在的效率低下、数据安全性差等问题。通过采用前后端分离架构&#xff0c;系统实现了用户信息管理、挂号管理、医生管理等功能模块&#xff0c;有效提升了医院的…

Linux 基础io_ELF_虚拟物理地址_动态库加载

1.可执行程序格式 ELF [wwshcss-ecs-178e myshell]$ ll total 56 -rw-rw-r-- 1 wws wws 92 Oct 17 19:14 file -rw-rw-r-- 1 wws wws 82 Oct 12 16:51 makefile -rw-r--r-- 1 wws wws 90 Oct 17 19:13 myfile -rwxrwxr-x 1 wws wws 20128 Oct 16 21:02 myshell -rw-r…

Java如何实现PDF转高质量图片

大家好&#xff0c;我是 V 哥。在Java中&#xff0c;将PDF文件转换为高质量的图片可以使用不同的库&#xff0c;其中最常用的库之一是 Apache PDFBox。通过该库&#xff0c;你可以读取PDF文件&#xff0c;并将每一页转换为图像文件。为了提高图像的质量&#xff0c;你可以指定分…

【HarmonyOS NEXT】使用 Navigation 对折叠屏设备页面进行分栏展示,优化 UI 交互

关键词&#xff1a;折叠屏、navigation、router、路由、分栏、UI 随着科技的发展&#xff0c;手机设备形态也由一面屏向多面屏进行发展&#xff0c;那么软件的UI适配也面临着问题&#xff0c;本篇文章主要解决大屏设备的页面 UI 适配问题&#xff0c;如折叠屏&#xff0c;平板&…

Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (二)

coppelia sim[V-REP]仿真实现 机器人于3D相机手眼标定与实时视觉追踪 二 zmq API接口python调用python获取3D相机的数据获取彩色相机的数据获取深度相机的数据用matpolit显示 python控制机器人运动直接控制轴的位置用IK运动学直接移动到末端姿态 相机内参的标定记录拍照点的位置…

Linux 安装nacos

1.下载版本 https://github.com/alibaba/nacos/tags 2.解压压缩包&#xff0c;启动 (1)将压缩包放到/usr/local目录下&#xff0c;解压 tar -xvf nacos-server-2.0.0-BETA.tar.gz(2)删除压缩包 rm -f nacos-server-2.0.0-BETA.tar.gz(3) 找到nacos的mysql的数据库脚本,在数…

sqoop问题汇总记录

此篇博客仅记录在使用sqoop时遇到的各种问题。持续更新&#xff0c;有问题评论区一起探讨&#xff0c;写得有不足之处见谅。 Oracle_to_hive 1. main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTr…

基于微信小程序的小区管理系统设计与实现(lw+演示+源码+运行)

摘 要 社会发展日新月异&#xff0c;用计算机应用实现数据管理功能已经算是很完善的了&#xff0c;但是随着移动互联网的到来&#xff0c;处理信息不再受制于地理位置的限制&#xff0c;处理信息及时高效&#xff0c;备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮…

window11使用wsl2安装Ubuntu22.04

目录 1、快速了解wsl2 安装子系统linux流程&#xff08;B站视频&#xff09; 2、wsl2常用命令 3、windows与子系统Linux文件访问方法 4、子系统linux使用windows网络代理、网络配置&#xff08;镜像网络&#xff0c;非NAT&#xff09; 5、wsl2 Ubuntu miniconda 安装 6、…

【K8S系列】Kubernetes 中 NodePort 类型的 Service 无法访问的问题【已解决】

在 Kubernetes 中&#xff0c;NodePort 类型的 Service 允许用户通过每个节点的 IP 地址和指定的端口访问应用程序。如果 NodePort 类型的 Service 无法通过节点的 IP 地址和指定端口进行访问&#xff0c;可能会导致用户无法访问应用。本文将详细分析该问题的常见原因及其解决方…