PlatformIO IDE(VSCode) 基本使用

您所在的位置:网站首页 platformio安装不上 PlatformIO IDE(VSCode) 基本使用

PlatformIO IDE(VSCode) 基本使用

2023-07-02 15:48| 来源: 网络整理| 查看: 265

Aug 19, 2019 PlatformIO IDE(VSCode) 基本使用 - 使用第三方库

在实际做一个项目的时候,为了提高效率我们会首选不重复造轮子,所以可能会用到第三方库,而 PlatformIO 为我们整理和提供了一些即装即用的第三方库,本文笔者就带大家了解一下在 PlatformIO IDE (VSCode) 中如何使用和管理这些库。

前言

本文将使用 Arduino Leonardo 讲解,以文章 PlatformIO IDE(VSCode) 基本使用 - 新建项目 中新建的控制 LED 闪烁的工程(blink)为例。

这个工程中 LED 的控制是阻塞式的,因为使用了 delay 方法,就是死等延时这造成了运算资源的浪费,有没有更好的方法控制 LED 按周期闪烁,而不阻塞呢?笔者很自然地想到了用定时器控制 led 就行啦,所以这就有了我们的新的需求,有没有第三方库支持定时器操作呢!

PIO 提供了很好的方式帮助我们查找和管理第三方库,在下一小节跟笔者一起看一下如何找到我们需要的第三方库。

第三方库的管理

首先我们打开 blink 工程,然后打开 PIO Home 页面,点击左侧的 Libraries 标签打开库的标签页,我们会看到库的标签页中有四个标签页分别是:

Registry:仓库,在这里我们可以查找我们需要的第三方库,也能看到按照下载量排序的关键词标签,也能看到最近库的下载排名 Installed:在这里我们能看到曾经安装的库,并对它们进行管理 Build-in:在这里我们能看到安装的平台和框架中内建的库 Updates:在这里我们能看到需要更新的库

库的查找

按照上面提到的需求,我们在 Registry 标签页中查找库,我们在搜索框中搜索定时器对应的英文 Timer:

可以看到会列出搜索到的结果,搜索优先会按照框架进行关键词搜索,我们看一下具体的一个条目,比如第一个库 Ticker,每个条目包含的信息如下:

名称及功能描述 适用的框架 适用的平台 关键词标签 其它:下载量、例程数

根据第一个描述就符合我们的需求呀,我们点击一下进入库的页面:

可以看到有五个标签页,这里简单说明一下:

Examples:展示库中包含的例程,有的包含多个,可以点击下拉列表选择不同的例程查看代码 Installtion:展示如何在项目工程中使用库,在 platformio.ini 文件中如何配置 Headers:库中包含的头文件 Manifest:这个一般不用关心,展示的是这个库在 PIO 仓库中的配置信息 Changelog:更新日志 库的安装

安装库一般是两种形式,一种是全局安装,其他项目工程也能够使用,另一种是只安装到指定项目工程中。

点击 Install 会默认全局安装,这样其它的工程项目也能使用而不用重复安装。

另外,也可以点击 Install 按钮右边的 ... 按钮完成指定位置的安装:

这里我们采用全局安装,点击 Install 按钮即可,库安装完成后会有弹窗提示。

库的卸载

有时有些库可能不再会使用,如果想卸载怎么操作?找到 Librairies 的 Installed 标签页,就会看到我们刚才安装的 Ticker 库,可以看到 Uninstall 按钮,点击它按照提示操作即可完成卸载,点击 Reveal 按钮会打开安装库的目录:

库的更新

PIO Home 启动后会检测库的更新,如果库有新的版本发布,就会在 Libraries - Updates 页面出现待更新的库,点击 Update 按钮即可实现更新!

库的使用 配置

使用第三方库的方式会在库的页面的 Installtion 标签页展示,比如 Ticker 库的:

需要在 paltformio.ini 文件中添加 lib_deps 项,指定库即可,主要有三种方式:

lib_deps = # 使用库的名称 Ticker # ... 或者使用库的 ID 1586 # ... 或者使用指定版本的库 [email protected] # Semantic Versioning Rules # http://docs.platformio.org/page/userguide/lib/cmd_install.html#description # Ticker@^3.1.5 # Ticker@~3.1.5 # Ticker@>=3.1.5

我们这里采用第一种方式,最终 blink 项目的 platformio.ini 内容如下:

[env:leonardo] platform = atmelavr board = leonardo framework = arduino lib_deps = # Using a library name Ticker

这里要注意的是,一个项目工程极有可能会使用多个库,这是有两种语法配置:

; one line definition (comma + space) [env:myenv] lib_deps = LIBRARY_1, LIBRARY_2, LIBRARY_N ; multi-line definition [env:myenv2] lib_deps = LIBRARY_1 LIBRARY_2 LIBRARY_N 使用库

这样我们就可以在工程中源代码中包含库的头文件然后使用库了,因为毕竟是别人的写的库,所以应该先看一下例程的用法,然后根据自己的需求实现自己需要的功能。

比如还是实现 1s 切换一次 LED 状态实现等的闪烁,只需要编写相应的处理函数,定义新的 Ticker 指定处理函数和时间参数即可,代码如下:

#include #include void blink() { static uint32_t state = 0; state ^= 1; digitalWrite(LED_BUILTIN, state); } Ticker timer(blink, 1000, 0, MILLIS); void setup() { pinMode(LED_BUILTIN, OUTPUT); timer.start(); } void loop() { timer.update(); //放置其它处理操作 }

编译上传程序,顺利的话同样实现了 LED 的秒闪烁。

结语

本文只是简单的说了库管理和使用的基本常用操作,可以满足基本使用需求了,如果需要了解更多内容,可以参考:Library Manager。

platformiodevelopmcupio

1615 字

2019-08-19 10:49 +0800



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3