当前位置:   article > 正文

在vscode 中用PlatformIO开发Arduino_paltformio.ini语句含义

paltformio.ini语句含义


参考地址:

  1. https://diyprojects.io/install-ide-platformio-extension-visual-studio-code-vscode-windows-32-bit-linux/#.YGaJ48hfgdU
  2. https://diyprojects.io/migrate-project-arduino-ide-platformio-esp32-esp8266-esp01#.YGaK1MhfgdU

VSCode上的PlatformIO IDE入门

原文:https://diyprojects.io/install-ide-platformio-extension-visual-studio-code-vscode-windows-32-bit-linux/#.YGaJ48hfgdU

在这里插入图片描述

目录

PlatformIO是Arduino IDE的替代产品,可以更通用的方式为微控制器开发连接的对象或代码。PlatformIO不是代码编辑器,它是一组工具(工具链),形式为Microsoft的Visual Studio Code(或VSCode)和GitHub(也是Microsoft!)的Atom插件。VSCode是用于Windows,macOS,Linux(32或64位)的轻量级免费代码编辑器。

PlatformIO可作为许多代码编辑器(AtomCLionCodeBlocksEclipseEmacsNetBeansQt CreatorSublime TextVimVisual StudioVSCode)的插件提供。无论发布者是什么,功能都是相同的。我选择了Microsoft的Visual Studio Code,这是一种快速,免费的跨平台编辑器。你选 !

为Windows,macOS或Linux安装Visual Studio Code(VSCode)

转到VSCode官方页面以下载并安装适合您的环境的版本。

  • Windows:安装程序ou ZIP
  • macOS:dmg
  • Linux 32位:.deb,.rpm,.tag.gz
  • Linux 64位:.deb,.rpm,.tag.gz
    在这里插入图片描述
    1

安装用于VSCode的PlatformIO IDE软件包

VSCode有一个扩展管理器(插件),可以通过查看->扩展菜单或直接从侧栏中的图标打开。
在这里插入图片描述

2

VSCode的工作原理与Sublime Text非常相似(好主意经常被复制……),您也可以使用CTRL + P组合键(或在macOS下为Cmd + P)调用扩展管理器。

在搜索字段中输入platformio。

单击“安装”以开始安装插件和依赖项。
在这里插入图片描述

3

请注意,某些扩展程序开发人员使用的官方项目图标可能会造成混淆。您可以信任扩展名。嵌入式,物联网,Arduino,ARM mbed,乐鑫(ESP8266 / ESP32),AVR,RISC-V,STM32,PIC32,nRF51 / nRF52,MSP430,MCS-51(8051),FPGA,FreeRTOS,ESP-IDF, CMSIS,SPL

安装过程在后台进行,当您发现VSCode时会有些混乱。屏幕右下方的窗口可让您跟踪安装的顺利进行。这很少见,但是如果您遇到安装问题(或崩溃),只需重新启动VSCode即可恢复安装过程。
在这里插入图片描述

4

顺便提一句,VSCode的操作与Sublime Text非常相似(好主意经常被复制……),您也可以使用组合键CTRL + P(或macOS下的Cmd + P)来调用扩展管理器。

首次在VSCode上启动PlatformIO

安装结束时,无需重新启动编辑器。PIO主页在新标签tab中打开。此页面大大减慢了VSCode的启动速度,但无济于事。我建议您通过取消选中“在启动时显示➁”选项来禁用启动时打开它的功能。

侧栏appears中会出现一个以蚂蚁头形式出现的新图标。它提供对PIO的所有功能的访问。我们将在稍后详细介绍它们。
在这里插入图片描述

4

最后,迷你工具栏➃出现在屏幕底部。它是PIO菜单light的精简版本。它结合了以下功能

  • 错误表示编译问题
  • 主页打开PIO主页窗口。当您要导入或创建新项目时很有用
  • Build编译项目代码。允许您检查错误
  • 上载编译并上载项目。检测是自动的,但也可以在配置文件中指定端口
  • 上载到远程设备idem,但在远程MCU上。需要一个PIO帐户(免费或受限的PIO帐户)
  • 清除将删除构建文件夹。如有问题,请不要犹豫。对项目的源代码没有影响
  • 在编译之前进行测试以测试代码
  • 运行任务将打开VSCode命令面板
  • 串行监视器打开串行监视器
  • 终端直接在Windows的VSCode或Power Shell中打开终端。我们直接定位在项目的根本
    在这里插入图片描述

5

对于喜欢使用键盘快捷键的用户,您可以使用组合键Ctrl + Shift + P(在macOS上为Cmd + ↑ + P)召唤调色板。

然后输入关键字platformio以显示所有可用命令
在这里插入图片描述

6

PIO菜单

让我们回到PIO菜单,这是使用PIO的最简单,最完整的方法。总是可以从侧边栏访问它。它结合了PIO的所有功能。

以下是最有用的命令:
在这里插入图片描述

创建一个新项目(ESP32或ESP8266)

现在是继续研究一个小例子的时候了。

打开PIO主窗口(如有必要),然后单击+新建项目以打开用于创建项目的向导
在这里插入图片描述

8

为项目命名,然后从列表中选择开发板。该列表令人印象深刻。

您可以输入制造商的首字母(LoLin,TTGO),开发板的首字母(d1 mini),类型(ESP32,ESP8266…)来过滤开发板。
在这里插入图片描述

9

将选择Arduino。您可以选择其他框架,但是在这种情况下,您必须参考后者的文档进行编程。

最后,选择用于创建项目的目录。如果选中“使用默认位置”,则将在Documents / PlatformIO / Projects文件夹中创建项目。目录名称将是项目的名称。

单击完成以开始项目的初始化。该操作仅持续几秒钟。

:
注意:不要使用可能会干扰编译器的特殊字符
在这里插入图片描述

10

现在可以从资源管理器访问该项目
在这里插入图片描述

11

该文件夹包含几个文件夹和配置文件。

  • .pio是包含构建的(隐藏)文件夹。这些是由编译器生成的二进制文件。由目标(开发板)创建一个子文件夹
  • lib是将在其中安装项目所需的库的文件夹。这样可以更好地管理从一个项目到另一个项目的版本问题。另一方面,要注意磁盘空间的消耗。
  • src此文件夹包含您的项目的源代码。这是你的工作档案
  • platformio.ini是PIO配置文件

警告,您绝不能干预(删除,修改,移动)文件夹和platformio.ini文件,否则您将不再能够编译您的项目。

打开位于src(源)文件夹中的main.cpp文件。如您所见,在PIO中开发Arduino代码时必须声明Arduino.h库。

#include "Arduino.h"

void setup(){
}

void loop(){
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

将代码替换为闪烁代码并保存更改

#include "Arduino.h"

void setup() {
   // initialize digital pin LED_BUILTIN as an output.
   pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
   digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
   delay(1000); // wait for a second
   digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
   delay(1000); // wait for a second
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

解密platformio.ini文件

现在,让我们了解如何解密位于项目根目录的platformio.ini配置文件。

PIO的优势在于能够根据需要将相同的代码(项目)编译成尽可能多的目标(开发板,MCU)。每块板的配置均按块进行,该块以键env:开始于括号之间,例如LoLin d1 mini的[env:esp12e]。

您需要3个参数来完全定义板子:

  • 对应于主板使用的SoC的平台(ESP32,ESP8266,Atmel AVR,STM32…)。完整列表在这里
  • 板开发板。完整列表可以在这里找到
  • 框架将运行项目代码的软件环境。请注意,每个SoC仅与有限数量的框架兼容。可以在这里找到列表。
[env:esp12e]             
platform = espressif8266   
board = esp12e
framework = arduino
  • 1
  • 2
  • 3
  • 4

然后,我们可以指定其他参数,例如

upload_port 指定COM端口

  • 基于Linux(或macOS)的系统上的/ dev / ttyUSB0串行端口
  • Windows上的COM3串行端口
  • 192.168.0.13用于通过WiFi(OTA)无线更新的IP地址

upload_speed 指定波特率传输速度

monitor_speed 串行监视器速度

这里有更多选择

要添加新的开发板,我建议您直接从官方WiKi检索板的配置,而不要使用配置向导。已经列出了850多个开发板。

无需费心就可以找到与具有LoRa连接功能的Heltec ESP32开发板有关的正确设置,该版本有2个版本。
在这里插入图片描述
12

从PlatformIO编译

现在一切准备就绪,您可以从PIO菜单启动构建的创建
在这里插入图片描述

或从工具面板
在这里插入图片描述

出于某些原因,我仍然无法进行测试和代码验证(检查),并显示一条错误消息。

与Arduino IDE不同,在编译之前不一定必须安装这些库。只要在ini文件中正确指示了依赖项,PIO就会处理一切。

终端在代码下方打开,并指示编译进度。编译时间与Arduino IDE相同。

如果一切顺利,您应该收到[成功]的消息

Linking .pio/build/esp12e/firmware.elf
Retrieving maximum program size .pio/build/esp12e/firmware.elf
Checking size .pio/build/esp12e/firmware.elf
Building .pio/build/esp12e/firmware.bin
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [=== ] 32.7% (used 26816 bytes from 81920 bytes)
Flash: [== ] 24.6% (used 257212 bytes from 1044464 bytes)
Creating BIN file ".pio/build/esp12e/firmware.bin" using ".pio/build/esp12e/firmware.elf"
======================================================== [SUCCESS] Took 32.26 seconds ====
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

复制

检查是否正确检测到开发板

在Arduino IDE上,只需转到“工具” ->“端口”菜单以查找是否已检测到开发板。

在PIO上,可以使用等效功能。打开PIO主页,然后打开“设备”选项卡。这些板卡将自动检测到并显示在列表中(在Mac上为此处)。如果不是这种情况,请使用“刷新”按钮强制检测设备。
在这里插入图片描述

提醒一下,如果您难以将程序上传到板上,则可以在配置中指定端口和传输速度(请参见上文)

将程序上传到开发板(Arduino,ESP8266,ESP32,STM32…)

一切准备就绪,可以将程序上传到开发板。和以前一样,可以从面板或PIO菜单访问Upload方法

PIO编译项目,连接到开发板并上传二进制文件。

> Executing task in folder Demo ESP8266: platformio run --target upload <

Warning! Ignore unknown configuration option `upload_serial` in section [env:esp12e]
Processing esp12e (platform: espressif8266; board: esp12e; framework: arduino)
----------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp12e.html
PLATFORM: Espressif 8266 2.5.1 > Espressif ESP8266 ESP-12E
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES: 
- framework-arduinoespressif8266 3.20701.0 (2.7.1) 
- tool-esptool 1.413.0 (4.13) 
- tool-esptoolpy 1.20800.0 (2.8.0) 
- tool-mkspiffs 1.200.0 (2.0) 
- toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 30 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Retrieving maximum program size .pio/build/esp12e/firmware.elf
Checking size .pio/build/esp12e/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [=== ] 32.7% (used 26816 bytes from 81920 bytes)
Flash: [== ] 24.6% (used 257212 bytes from 1044464 bytes)
Configuring upload protocol...
AVAILABLE: espota, esptool
CURRENT: upload_protocol = esptool
Looking for upload port...
Auto-detected: /dev/cu.usbserial-1410
Uploading .pio/build/esp12e/firmware.bin
esptool.py v2.8
Serial port /dev/cu.usbserial-1410
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 5c:cf:7f:85:e6:20
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 261360 bytes to 192964...

Writing at 0x00000000... (8 %)
Writing at 0x00004000... (16 %)
Writing at 0x00008000... (25 %)
Writing at 0x0000c000... (33 %)
Writing at 0x00010000... (41 %)
Writing at 0x00014000... (50 %)
Writing at 0x00018000... (58 %)
Writing at 0x0001c000... (66 %)
Writing at 0x00020000... (75 %)
Writing at 0x00024000... (83 %)
Writing at 0x00028000... (91 %)
Writing at 0x0002c000... (100 %)
Wrote 261360 bytes (192964 compressed) at 0x00000000 in 18.6 seconds (effective 112.6 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
================================ [SUCCESS] Took 23.11 seconds ==============================
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

复制

常见问题

无法上传

esptool.py无法连接到开发板(ESP32,ESP8266…)

Looking for upload port...
Auto-detected: /dev/cu.usbserial-1420
Uploading .pio/build/esp12e/firmware.bin
esptool.py v2.8
Serial port /dev/cu.usbserial-1420
Connecting........_____....._____....._____....._____....._____....._____....._____

A fatal error occurred: Failed to connect to ESP8266: Timed out waiting for packet header
*** [upload] Error 2
============================= [FAILED] Took 27.38 seconds ===================
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

可能的原因和补救措施:

  • 该模块未处于booltload模式或尚未收到请求。
  • 测试方法:
    • 重设
    • 断开连接/重新连接/重新开始上传
    • 通过更改USB电缆进行同上
    • 另一个USB端口上的同上
    • 清除闪存
    • 检查是否在设备中检测到板子
    • 用另一个模块进行测试……如果经过几次尝试仍然没有通过,请考虑更换该模块

无法连接串行监视器

默认情况下,官方扩展上的串行端口配置为9600波特。韩俊添加了一个参数来设置速度。要使用其他速度,请打开“终端”并运行以下命令pio device monitor -b 115200。

您也可以使用monitor_speed选项在plaformio.ini文件中指定速度。
在这里插入图片描述

如何禁用PlatformIO扩展?

PIO可能会减慢VSCode的启动速度。如果您一次性使用,可以从扩展管理器中将其停用。需要PIO功能时将其激活。加载已完成,无需重新启动VSCode!
在这里插入图片描述

Visual Studio Code是Atom编辑器的很好替代品。非常轻,它的启动速度比Atom快得多。它也非常适合轻型配置或运行32位Linux的再生PC。您将比在仍然是PlatformIO的官方开发平台的Atom上获得的指导要少一些。SDK的文档非常齐全,抓地力非常快。

将项目从Arduino IDE迁移到PlatformIO

原文地址:https://diyprojects.io/migrate-project-arduino-ide-platformio-esp32-esp8266-esp01#.YGaK1MhfgdU
目录

启动时,PlatformIO似乎不如Arduino IDE易于访问,但它是功能强大的代码编辑器。我们将看到如何迁移(导入)用Arduino IDE开发的现有项目。

自ESP8266 SDK版本2.6.0起,PlatformIO支持SPIFFS和LittleFS。要使用LittleFS,只需使用platformio配置文件中的board_build.filesystem = littlefs选项进行指定。阅读本教程以了解更多信息。

另请阅读ESP8266。从PlatformIO上传数据文件夹(SPIFFS或LittleFS)

在VSCode上安装PlatformIO(PIO)

PlatformIO(PIO)不是代码编辑器。它是命令行开发环境(也称为工具链),可作为绝大多数代码编辑器的插件使用。AtomCLionCodeBlocksEclipseEmacsNetBeansQt CreatorSublime TextVimVisual StudioVSCode。无论使用什么编辑器,功能都是相同的。

我建议您从Microsoft安装用于Visual Studio Code(VSCode)的PIO插件,它是一种快速,免费和跨平台的编辑器。你选 !

另请阅读VSCode(Windows,macOS,Raspbian,Linux)上的PlatformIO IDE入门

在PlatformIO上手动导入Arduino项目

1从屏幕左侧的工具栏或屏幕底部工具栏的房屋图标打开PIO主页。
在这里插入图片描述
1

2单击导入Arduino项目以开始导入现有项目。
在这里插入图片描述

3选择所需的开发板

在这里,我们将选择LoLin d1 mini。PIO支持800多个开发板。

稍后可以添加(或修改板),这是PIO的优势

4找到并选择Arduino / ESP32 / ESP8266项目文件夹以迁移到PIO。
在这里插入图片描述
3

5启动项目的导入/迁移到PIO

在PlatformIO工作文件夹中创建一个包含项目源代码的新文件夹。默认情况下,工作文件夹位于Windows上的“我的文档”中,以及macOS或Linux上的“文档”中。

在Projects目录中创建的文件夹以目标日期时间(开发板的名称)为名称,并包含以下元素:

  • lib私有库已移至lib文件夹
  • src将包含所有ino文件(Arduino项目的源代码)
  • platformio.ini是允许您定义环境的配置文件。每个环境都允许您指定开发板的类型(ArduinoESP32ESP8266STM32 …),用于编译的框架以及此处记录的许多其他参数。
    在这里插入图片描述
    4

文件复制完成后,PIO会生成项目配置文件。
在这里插入图片描述
5

PIO下的Arduino项目的新结构

使用Arduino IDE,库存储在Arduino- > Library子文件夹中的文档中。

在PIO下,建议直接在项目文件夹中管理库。这使您可以管理每个项目的库版本。也可以使用Arduino IDE来执行此操作,但是不太方便。

迁移现有项目时,main.ino文件将自动移至src文件夹。

创建新项目时,PIO会生成一个cpp文件并将调用添加到Arduino.h库

#include <Arduino.h>
  • 1

您将必须手动将数据文件夹(如果存在)移动到与src文件夹相同的级别

Arduino项目结构迁移后的PIO项目结构
project_dir ├──数据 │└──file.txt ├──main.inoproject_dir ├──数据 │└──file.txt ├──lib │└──自述文件 ├──platformio.ini ├──src │└──main.ino └──测试 └──...

移动包含LittleFS或SPIFFS文件的数据文件夹(可选)

如果您的项目在数据文件夹中包含LittleFSSPIFFS文件,则必须手动移动它,使其与src文件夹位于同一级别。
在这里插入图片描述
6

默认情况下,PIO使用SPIFFS文件系统。要激活LittleFS,您需要通过将选项board_build.filesystem = littlefs添加到platformio.ini文件中来指定它。

要指定文件系统(FS)的大小,只需添加选项board_build.ldscript并以eagle.flash形式指定值。***。d

所有可用的配置都在这里

这是配备4MB闪存的LoLin d1 mini的示例,其中3MB将分配给LittleFS文件系统。

[env:d1_mini_lite]
platform = espressif8266
board = d1_mini_lite
board_build.filesystem = littlefs
board_build.ldscript = eagle.flash.4m3m.ld
  • 1
  • 2
  • 3
  • 4
  • 5

复制

然后使用“上传文件系统映像”选项
在这里插入图片描述
7

PlatformIO IDE(VSCode) 使用第三方库

十里

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

1. 前言

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

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

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

2. 第三方库的管理

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

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

2.1 库的查找

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

在这里插入图片描述

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

  • 名称及功能描述
  • 适用的框架
  • 适用的平台
  • 关键词标签
  • 其它:下载量、例程数
    在这里插入图片描述

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

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

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

2.2 库的安装

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

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

另外,也可以点击 Install 按钮右边的 ... 按钮完成指定位置的安装:
在这里插入图片描述

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

2.3 库的卸载

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

2.4 库的更新

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

3. 库的使用

3.1 配置

使用第三方库的方式会在库的页面的 Installtion 标签页展示,比如 Ticker 库的:
在这里插入图片描述

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

lib_deps =
# 使用库的名称
    Ticker

# ... 或者使用库的 ID
    1586

# ... 或者使用指定版本的库
    Ticker@3.1.5

# 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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

[env:leonardo]
platform = atmelavr
board = leonardo
framework = arduino
lib_deps =
  # Using a library name
  Ticker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

; 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3.2 使用库

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

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

#include <Arduino.h>
#include <Ticker.h>

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();
  //放置其它处理操作
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

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

4. 另一种方法(不推荐)

如果使用在flatformIOzhong 未注册库,则可以选择其他途径,例如库ABC:

  • 下载资料库
  • 解压缩库
  • 将其放入lib项目中的目录

5. 结语

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

Library Manager - PlatformIO 4.0.1rc2 documentationdocs.platformio.org


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/351615
推荐阅读
相关标签
  

闽ICP备14008679号