2020年你還在用Arduino??快開始用PlatformIO開發Esp8266/32、Arduino、STM32,十分鐘親測ESP8266

2020-10-25 08:00:34

簡介

對微控制器最早的認識是大一的時候刷到的C51微控制器,那時候玩了一陣子感覺可玩性不高,後來有了解到Arduino,買了兩Uno回來用Arduino開發感覺可玩性和快速開發都比C51強多了,再後來瞭解了NodeMCU這玩意,又入手了Esp8266、Esp32、Esp32 Cam、STM32,當時還是用的Arduino軟體去參考各個貼文(自己做了些修以備自查)設定三者的開發環境,單單是一個esp8266的開發環境當時就設定了很久,更不用說Esp32、cam、stm32了,以至於後面設定的stm32都無法使用。。。。
而且換電腦之後就不想再折騰環境了。。。。真的耗費時間,現在2020年啊,怎麼還會有那麼愚蠢的軟體環境設計???於是在經過一番查詢瞭解了PlatformIO,支援跨平臺開發世界上的絕大多數板子一鍵設定開發環境,這麼香

這裡以Esp8266為例

安裝PlatformIO

首先要安裝VS code,然後在VS code裡面安裝PlatformIO IDE即可
在這裡插入圖片描述

裝開發板 與 第一個Demo

在這裡插入圖片描述
在這裡插入圖片描述

Framework講解

在選擇NodeMCU 1.0之後,框架就有四種選擇 Arduino、Simba、ESP8266 RTOS SDK、ESP8266 Non-OS SDK
Arduino框架用過Arduino開發的盆友都知道是啥東西;
Simba真不瞭解。。。。
最後兩是樂鑫自家推出的框架,
ESP8266 RTOS SDK是基於FreeRTOS,在GitHub上開源。
RTOS版本SDK使用FreeRTOS系統,引入OS多工處理機制,使用者可以使用FreeRTOS的標準介面實現資源管理、迴圈操作、任務內延時、任務間資訊傳遞和同步等面向任務流程的設計方式。RTOS版本相容non-OS SDK中WiFi介面、SmartConfig介面、Sniffer相關介面、系統介面、定時器介面、FOTA介面和外圍驅動介面,不支援AT實現。
Non-OS 是不基於作業系統的SDK,提供IOT_Demo和AT的編譯。Non-OS SDK主要使用定時器和回撥函數的方法實現各個功能事件的巢狀,達到特定條件下觸發特定功能函數的目的。
那選擇困難症來了,選哪一個???

ESP8266_RTOS_SDK’s framework is quite outdated and different from the current esp-idf and we are planning to migrate ESP8266_RTOS_SDK to esp-idf eventually after v2.0.0.

根據基友站點的描述,樂鑫認為 ESP8266_RTOS_SDK已經過時了。。。樂鑫打算在Esp-IDF v2之後把 ESP8266_RTOS_SDK納入IDF中。但截至2020,10,23在Esp12系列的Framework中還沒出現IDF選項。。。

However, we will firstly provide a new version of ESP8266 SDK (ESP8266_RTOS_SDK v3.0), which shares the same framework with esp-idf (esp-idf style), as a work-around, because the multi-CPU architecture is not supported by esp-idf for the time being.

後面又說道先推出具有和IDF相似架構的ESP8266_RTOS_SDK v3.0,阿哲,那我還是先選擇Arduino框架吧
在這裡插入圖片描述
選擇好引數、設定好專案名稱之後就可以點選Finish完成了,然後等待第一次自動設定環境,8:45-8:47,這速度感人嗎??反正我是感到了
在這裡插入圖片描述
在這裡插入圖片描述

#include <Arduino.h>

void setup() {
  // put your setup code here, to run once:
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
}

編輯完成程式碼之後點選最下面的鉤鉤開始編譯,編譯完成之後(當然要把開發板插上啦)點選水平箭頭上傳
在這裡插入圖片描述
在這裡插入圖片描述

效果

開發板上的燈一閃一閃的,別問我為什麼我圖裡的沒有閃。
在這裡插入圖片描述

References