主頁 >  其他 > 在vscode 中用PlatformIO開發Arduino

在vscode 中用PlatformIO開發Arduino

2021-04-04 15:00:26 其他

文章目錄

  • VSCode上的PlatformIO IDE入門
    • 目錄
    • 為Windows,macOS或Linux安裝Visual Studio Code(VSCode)
    • 安裝用于VSCode的PlatformIO IDE軟體包
    • 首次在VSCode上啟動PlatformIO
    • PIO選單
    • 創建一個新專案(ESP32或ESP8266)
    • 解密platformio.ini檔案
    • 從PlatformIO編譯
    • 檢查是否正確檢測到開發板
    • 將程式上傳到開發板(Arduino,ESP8266,ESP32,STM32…)
    • 常見問題
      • 無法上傳
      • 無法連接串行監視器
    • 如何禁用PlatformIO擴展?
  • 將專案從Arduino IDE遷移到PlatformIO
    • 在VSCode上安裝PlatformIO(PIO)
    • 在PlatformIO上手動匯入Arduino專案
    • PIO下的Arduino專案的新結構
    • 移動包含LittleFS或SPIFFS檔案的資料檔案夾(可選)
  • PlatformIO IDE(VSCode) 使用第三方庫
    • 1. 前言
    • 2. 第三方庫的管理
      • 2.1 庫的查找
      • 2.2 庫的安裝
      • 2.3 庫的卸載
      • 2.4 庫的更新
    • 3. 庫的使用
      • 3.1 配置
      • 3.2 使用庫
    • 4. 另一種方法(不推薦)
    • 5. 結語

參考地址:

  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

目錄

  • 為Windows,macOS或Linux安裝Visual Studio Code(VSCode)
  • 安裝用于VSCode的PlatformIO IDE軟體包
  • 首次在VSCode上啟動PlatformIO
  • PIO選單
  • 解密platformio.ini檔案
  • 從PlatformIO編譯
  • 檢查是否正確檢測到開發板
  • 將程式上傳到開發板(Arduino,ESP8266,ESP32,STM32…)
  • 常見問題
  • 如何禁用PlatformIO擴展?
  • 您對此主題有疑問嗎?

PlatformIO是Arduino IDE的替代產品,可以更通用的方式為微控制器開發連接的物件或代碼,PlatformIO不是代碼編輯器,它是一組工具(工具鏈),形式為Microsoft的Visual Studio Code(或VSCode)和GitHub(也是Microsoft!)的Atom插件,VSCode是用于Windows,macOS,Linux(32或64位)的輕量級免費代碼編輯器,

PlatformIO可作為許多代碼編輯器(Atom,CLion,CodeBlocks,Eclipse,Emacs,NetBeans,Qt Creator,Sublime Text,Vim,Visual Studio,VSCode)的插件提供,無論發布者是什么,功能都是相同的,我選擇了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(){
}

將代碼替換為閃爍代碼并保存更改

#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
}

解密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

然后,我們可以指定其他引數,例如

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 ====

復制

檢查是否正確檢測到開發板

在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 ==============================

復制

常見問題

無法上傳

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 ===================

可能的原因和補救措施:

  • 該模塊未處于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的檔案非常齊全,抓地力非常快,

  • 使用PlatformIO開發物聯網專案,問題與解決方案
  • Platformio.ini,提示和有用的設定,data_dir,monitor_speed,upload_port…
  • 將專案從Arduino IDE遷移到PlatformIO,ESP32,ESP8266或其他
  • ESP8266,從PlatformIO上傳資料檔案夾(SPIFFS或LittleFS)
  • 將Arduino代碼轉換為ESP8266 / ESP32的ESP Easy Mega插件

將專案從Arduino IDE遷移到PlatformIO

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

  • 在VSCode上安裝PlatformIO(PIO)
  • 在PlatformIO上手動匯入Arduino專案
  • PIO下的Arduino專案的新結構
  • 移動包含LittleFS或SPIFFS檔案的資料檔案夾(可選)
  • 更新
  • 您對此主題有疑問嗎?

啟動時,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)不是代碼編輯器,它是命令列開發環境(也稱為工具鏈),可作為絕大多數代碼編輯器的插件使用,Atom,CLion,CodeBlocks,Eclipse,Emacs,NetBeans,Qt Creator,Sublime Text,Vim,Visual Studio,VSCode,無論使用什么編輯器,功能都是相同的,

我建議您從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是允許您定義環境的組態檔,每個環境都允許您指定開發板的型別(Arduino,ESP32,ESP8266,STM32 …),用于編譯的框架以及此處記錄的許多其他引數,

    4

檔案復制完成后,PIO會生成專案組態檔,

5

PIO下的Arduino專案的新結構

使用Arduino IDE,庫存盤在Arduino- > Library子檔案夾中的檔案中,

在PIO下,建議直接在專案檔案夾中管理庫,這使您可以管理每個專案的庫版本,也可以使用Arduino IDE來執行此操作,但是不太方便,

遷移現有專案時,main.ino檔案將自動移至src檔案夾,

創建新專案時,PIO會生成一個cpp檔案并將呼叫添加到Arduino.h庫

#include <Arduino.h>

您將必須手動將資料檔案夾(如果存在)移動到與src檔案夾相同的級別

Arduino專案結構遷移后的PIO專案結構
project_dir ├──資料 │└──file.txt ├──main.inoproject_dir ├──資料 │└──file.txt ├──lib │└──自述檔案 ├──platformio.ini ├──src │└──main.ino └──測驗 └──...

移動包含LittleFS或SPIFFS檔案的資料檔案夾(可選)

如果您的專案在資料檔案夾中包含LittleFS或SPIFFS檔案,則必須手動移動它,使其與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

復制

然后使用“上傳檔案系統映像”選項

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

我們這里采用第一種方式,最終 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

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();
  //放置其它處理操作
}

編譯上傳程式,順利的話同樣實作了 LED 的秒閃爍,

4. 另一種方法(不推薦)

如果使用在flatformIOzhong 未注冊庫,則可以選擇其他途徑,例如庫ABC:

  • 下載資料庫
  • 解壓縮庫
  • 將其放入lib專案中的目錄

5. 結語

本文只是簡單的說了庫管理和使用的基本常用操作,可以滿足基本使用需求了,如果需要了解更多內容,可以參考:

Library Manager - PlatformIO 4.0.1rc2 documentationdocs.platformio.org


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272309.html

標籤:其他

上一篇:TI DSP BootLoader技術要點概述

下一篇:合肥光源儲存環束流三維引數測量系統的初步結果2

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more