使用PlatformIO IDE来让你的Arduino编译快上8倍_解决arduino编译慢-程序员宅基地

技术标签: 硬件开发  

什么是PlatformIO

这是一个依附于VisualStudio Code工具的平台,可以在上面编译包含AVR,STM32,ESP32等等嵌入式平台、架构,并且能直接在VSCode界面下上传到目标中,

 

为什么要使用这一个工具,我先上一个测试结果

 

在编译好大部分文件后,修改部分int形数据,以重新复用的形式使用Arduino IDE来编译,耗时:16.42秒

同一个使用了U8x8库的工程,使用PlatformIO进行编译,耗时:2.13秒

然后,再试试看从头编译所有文件的速度,Arduino IDE耗时:41.2秒

 

使用PlatformIO进行编译,耗时:25.3秒

 

优势非常的巨大

 

 

如何用上PlatformIO

操作很简单,首先你需要有一个Visual Studio,然后点击左侧扩展标识

搜索Platform IDE,并且进行安装

 

.

之后,会先进行初始化,在自动化安装一些必要的编译器等工具后,会提示重新启动VSCode

在重新启动VSCode完成后点击小房子这个标识

 

此时就可以出现PlatformIO的主页面了

点击建立新的工程,我选择了一个Arduino Nano

然后配置一下新建工程的目录以及名称

在第一次使用的时候会需要下载一些工具比如编译器和下载器等等,所以需要稍等一会儿

最终完成建立工程是这样子的,可以看到左侧出现了多个文件夹,其中有 setup 和 loop 函数的在src>>main.cpp中

我写了一个简单的串口的测试程序

#include <Arduino.h>

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
 Serial.println("Using platform");
}

在左下角的位置有编译和上传按钮

然后试着编译,从没有任何文件情况下,生成.o文件在变成.elf文件只需要3秒,可以说是有着非常高的效率


 

但是自带的串口工具并不是太好上手,所以或许可以继续沿用Arduino IDE的,比如说你要配置个波特率,会需要使用到platformio.ini文件进配置,没有可使用的图形界面

完成配置后可以看到串口调试工具正常的按照我们设置的115200波特率启动

如果没有配置这里,那么就是以9600默认波特率启动串口调试工具

 

 

后记

使用platformIO来编译有着非常高效的特点,但是不兼容.ino文件,也就是你要自己去设计头文件了,但好在这种方法可以和传统的使用Arduino IDE的方法相辅相成。

 

另外查错也变得需要更长时间,这个缺点同样影响效率。

 

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012388993/article/details/115494713

智能推荐

vue组件传值有哪些?_props promise传值-程序员宅基地

文章浏览阅读330次。1:父子组件传值:分析:在父组件内的子组件上绑定一个自定义属性和变量;<list></list>在子组件内2:兄弟组件传值:3:子传父组件传值:4:localStorage传值:5:sessionStorage传值:6:声明全局变量进行传值:7: eventBus(事件总线)传值:8: this.$refs 传值:9:$parent传值:10:$child传值:11: 路由传值:..._props promise传值

R语言逻辑操作符:&、|、!&&、||_r语言中!-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏23次。R语言逻辑操作符:&、|、!&&、||逻辑操作符下表显示了R语言支持的逻辑运算符。它只适用于逻辑、数字或复杂类型的向量。所有大于1的数字都被认为是逻辑值true。第一向量的每个元素与第二向量的相应元素进行比较。比较的结果是一个布尔值。算子 描述 例子 & 按位逻辑与。它将第一个向量的每个元素与第二个向量的相应元素相结合,如果两个元素都为真,则输出为真。 v <- c(3,1,TRUE_r语言中!

学习笔记 | 2021-1-10_[ピンクパイナップル... 2021-01-10-程序员宅基地

文章浏览阅读79次。第5章 if语句5.1 一个简单示例cars.pycars = [‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]for car in cars:if car == ‘bmw’:print(car.upper())else:print(car.title())5.2 条件测试检查是否相等;检查是否相等时不考虑大小写;例如,两个大小写不同的值会被视为不相等。car = 'Audi'car == 'audi'False检查是否不相等;比较数字;检查_[ピンクパイナップル... 2021-01-10

Wireshark实验 - DNS_wireshark过滤dns报文-程序员宅基地

文章浏览阅读3.6k次,点赞5次,收藏55次。Wireshark实验 - DNS官方英文文档:Wireshark_Intro_v6.01.pdfWireshark 实验: DNS v6.01《计算机网络:自顶向下方法(第6版)》补充材料,J.F. Kurose and K.W. Ross“不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之。” ——中国谚语 2005-2012, J.F Kurose and K.W. Ross, All Rights Reserved如书中第2.5节所述,域名系统(DNS)将主机名转换为IP地址_wireshark过滤dns报文

2018 数学建模 国赛(高教杯)-智能RGV的动态调度策略_cumcm-2018-problemb-程序员宅基地

文章浏览阅读2.5k次。2018 高教社杯全国大学生数学建模竞题问题B 智能RGV的动态调度策略Author:YXPEmail:[email protected]更多数模赛题:Amoiensis-CUMCUMhttps://github.com/Amoiensis/Mathmatic_Modeling_CUMCM赛题+论文+代码+思路:Amoiensis-Githubhttp..._cumcm-2018-problemb

kafka最常用命令清单_kafka 消费命令 kafka-avro-console-consumer-程序员宅基地

文章浏览阅读6.6k次。kafka版本:V0.2.10.1 zookeeper版本:V3.4.11 confluent版本:V3.3.0一、confluent相关启动1、启动confluent:./schema-registry-start -daemon ./etc/schema-registry/schema-registry.properties-daemon的目的是为了后台运行,_kafka 消费命令 kafka-avro-console-consumer

随便推点

Python画高斯分布图 (2D, 3D)_python绘制3d二维高斯核函数-程序员宅基地

文章浏览阅读2.1w次,点赞21次,收藏107次。使用Python画高斯概率分布图_python绘制3d二维高斯核函数

matlab知识点整理_matlab知识点归纳整理-程序员宅基地

文章浏览阅读868次。1、取整函数floor(x):向下取整ceil(x):向上取整round(x):取最接近的整数fix(x):向0取整2、生成随机数matlab产生随机数可以使用的方法:1、均匀分布:■ unifrnd (a, b, m, n)产生m*n阶[a, b]均匀分布■ unifrnd (a,b)产生一个[a,b]的均匀随机数2、rand (m, n);产生m*n阶[0,1]均匀分布的随机数矩阵■ rand(n);产生n*n阶[0,1]均匀分布_matlab知识点归纳整理

想考华为认证,需要准备什么?_李桃梅ccie-程序员宅基地

文章浏览阅读1.1k次。过来人答一下。80后的老工程师都听过两个名字,红头发,李桃梅。红头发是最早的一批ccie(当年思科还是老大),因录了一套技术视频,以及很有辨识度的昵称,在早期的网络上知名。只要是数通技术从业者,可以没看过红头发的视频,但一定听过红头发的名字。李桃梅则是各大论坛流传最广的ccnp视频的作者,李sir的视频清晰易懂,但是中间缺了几集,就像看剧看到中间没了,预知后事如何,请待下回分解。但是全网都找不到下回。后来很多年后,李桃梅开了公众号,说自己当年就没录那几集,你们别找了。..._李桃梅ccie

Hadoop伪分布集群搭建(Hadoop)_在vmware16中创建hadoop用户-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏4次。Hadoop伪分布集群搭建_在vmware16中创建hadoop用户

幼儿园课程体系结构图_构建幼儿园创新课程体系的思考-程序员宅基地

文章浏览阅读2k次。21世纪是一个以智力资源的占有、配置和以科学技术为主的知识的生产、分配和使用(消费)为重要因素的知识经济时代,是“最需要创造力和创新精神”的伟大变革时代。幼儿教育作为教育系统工程的基石,只有把培养创新型的儿童作为自己的核心目标,才能跟上时代的步伐,适应社会的发展。课程是创新教育目标落实到幼儿身上的中介,也是各种教育思想转化为实践的桥梁。面对大力开展创新教育这一新的发展态势,如何科学地构建幼儿园的创..._幼儿园课程体系框架

[Unity3D]面试题集锦_lod是什么c++优缺点-程序员宅基地

文章浏览阅读4.7k次,点赞2次,收藏13次。最先执行的方法是:1、(激活时的初始化代码)Awake,2、Start、3、Update【FixUpdate、LateUpdate】、4、(渲染模块)OnGUI、5、再向后,就是卸载模块(TearDown),这里主要有两个方法OnDisable与OnDestroy 高频问答的问题:1.什么是渲染管道?是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标_lod是什么c++优缺点

推荐文章

热门文章

相关标签