文章目錄
- 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. 結語
參考地址:
- https://diyprojects.io/install-ide-platformio-extension-visual-studio-code-vscode-windows-32-bit-linux/#.YGaJ48hfgdU
- 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.ino | project_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
標籤:其他
