www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

首頁 > 評測 > FireBeetle Board-ESP32 arduino開發(fā)體驗

FireBeetle Board-ESP32 arduino開發(fā)體驗

FireBeetle   ESP32   arduino   
  • 作者:BinWin
  • 來源:21ic
  • [導(dǎo)讀]
  • 本文來給大家展示一下如何來修改Arduino的IDE的字體以及對螢火蟲開發(fā)板進行呼吸燈的代碼調(diào)整。

 感謝二姨送出的螢火蟲,不僅有了ESP32,儼然也是一個arduino開發(fā)板,首次入手,對比了一下開發(fā)環(huán)境,首先以arduino切入。

下載windows平臺的安裝包,安裝過程就不需多說了。第一次打開后,字體較小,并且比較難看,費眼睛,找了半天,修改方式如下

 5@KD)ME%L)RDW$EW1@W_V`2.png

這里只能更改字體大小,修改配置文件來更改使用的字體。這個字體路徑在用戶下的AppData中,要查看隱藏文件

 ZJYAQ2JP}[ZG5SB1DDV0_4W.png

打開這個文件可以修改很多內(nèi)容,不過要先關(guān)閉IDE,重新打開就可以生效了

board=firebeetle32

boardsmanager.additional.urls=

build.verbose=false

build.warn_data_percentage=75

compiler.cache_core=true

compiler.warning_level=none

console=true

console.auto_clear=true

console.error.file=stderr.txt

console.length=500

console.lines=4

console.output.file=stdout.txt

custom_FlashFreq=firebeetle32_80

custom_UploadSpeed=firebeetle32_921600

editor.antialias=true

editor.auto_close_braces=true

editor.caret.blink=true

editor.code_folding=false

editor.divider.size=2

editor.external=false

editor.font=Microsoft YaHei Mono,plain,14

editor.indent=true

.........

我這里給修改的結(jié)果是:Microsoft YaHei Mono,plain,14,這是后來安裝的字體,代碼看起來舒服。

來看下板子的資源

900px-ESP32pinout.png

小板子上有兩個LED,可以使用的LED對應(yīng)的口線是D9,于是點燈的程序就可以這樣

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

}

修改字體以后的樣子,還可以吧

ZJYAQ2JP}[ZG5SB1DDV0_4W.png

直接點擊上傳會先進行編譯后再上傳,對于esp32來說,代碼是存放在外部16M的flash中的,和通常使用的單片機有所不同,這里對flash編程算法部分不做詳細說明。上傳成功可以看到藍色的led已1秒頻率閃爍。

以上可以驗證成功的操作了IO口。只有一個led,那再嘗試一下呼吸燈。對照dfrobot給出的用戶手冊來看下PWM的定義

 5@KD)ME%L)RDW$EW1@W_V`2.png

然后在通過arduino高度封裝的代碼來配置一個脈沖輸出

//設(shè)置通道 0

#define LEDC_CHANNEL_0 0

//設(shè)置 13 位定時器

#define LEDC_TIMER_13_BIT 13

//設(shè)置定時器頻率位 5000Hz

#define LEDC_BASE_FREQ 5000

//設(shè)置 LED 燈

#define LED_PIN D9

int brightness = 0; // how bright the LED is

int fadeAmount = 5; // how many points to fade the LED by

//設(shè)置 led 燈的亮度

void ledcAnalogWrite(uint32_t value, uint32_t valueMax = 255) {

//計算占空比

uint32_t duty = (LEDC_BASE_FREQ / valueMax) * min(value, valueMax);

//設(shè)置占空比

ledcWrite(LEDC_CHANNEL_0, duty);

}

void setup() {

// put your setup code here, to run once:

ledcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);

ledcAttachPin(LED_PIN, LEDC_CHANNEL_0);

}

void loop() {

// put your main code here, to run repeatedly:

ledcAnalogWrite(brightness); brightness += fadeAmount;

if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } delay(30);

}

注釋足夠清晰,配置定時器計數(shù)數(shù)值和通道,設(shè)置頻率, 然后使用void ledcAnalogWrite(uint32_t value, uint32_t valueMax = 255) 函數(shù)計算占空比和設(shè)置使用的占空比數(shù)值,關(guān)于具體的實現(xiàn)方式在arduino的庫文件中有詳細的實現(xiàn)過程,有興趣可以看看,arduino的庫是比例如stm32的庫函數(shù)更易用的一種方式。例如打開串口只需要一句Serial.begin(115200); 即已115200的波特率開啟了對應(yīng)的串口,再來一句Serial.println("hello esp32"); 即可以輸出字符串。習(xí)慣C開發(fā)單片機的朋友們是不是也會突然感覺arduino原來是這么的平易近人。

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論