1. 程式人生 > >ESP32那些事兒(五):瑞士軍刀之ESP32的常用API分析

ESP32那些事兒(五):瑞士軍刀之ESP32的常用API分析

事實上,所有在esp32上用到的api在esp-idf中都能找到,但是對於我們來講這是一個大而全的API參考指南,在專案的初期,我們沒有必要花費太多的時間詳細的閱讀每一個API的使用,挑一些常用的API進行學習,而後再根據使用情況來查詢參考文件,這樣才能達到事半功倍的效果,那麼這裡就羅列一些常用的API吧:

1、ESP_LOG
    我們寫程式最本能的就是關鍵的步驟都要打一些日誌到串列埠終端,這樣可以看到執行情況。
    1)、在ESP的專案中請使用LOG API列印,不用用printf等裸api,這樣可以在專案的不同階段可以通過統一設定來開啟關閉特定級別的LOG;
    2)、列印LOG的時候請確定好要使用的級別,是隻是Debug資訊還是錯誤資訊等,因為有些級別的LOG在專案後期時需要關閉的。

    ESP_LOGE - 錯誤日誌 (最低)
    ESP_LOGW - 警告日誌
    ESP_LOGI - 資訊級別的日誌
    ESP_LOGD - 用於除錯的日誌
    ESP_LOGV - 僅僅用於提示的日誌{最高)

2、vTaskDelay
    void vTaskDelay( portTickTypexTicksToDelay )
    呼叫vTaskDelay()函式後,任務會進入阻塞狀態,持續時間由vTaskDelay()函式的引數xTicksToDelay指定,單位是系統節拍時鐘週期。常量portTICK_RATE_MS 用來輔助計算真實時間,此值是系統節拍時鐘中斷的週期,單位是毫秒。在檔案FreeRTOSConfig.h中,巨集INCLUDE_vTaskDelay 必須設定成1,此函式才能有效。

3、xTaskCreate
xTaskCreate( pdTASK_CODE pvTaskCode, const portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask
     建立新的任務並新增到任務佇列中,準備執行
引數如下:
pvTaskCode
指向任務的入口函式. 任務必須執行並且永不返回 (即:無限迴圈).
pcName
描述任務的名字。主要便於除錯。最大長度由configMAX_TASK_NAME_LEN.定義
usStackDepth
指定任務堆疊的大小 ,堆疊能保護變數的數目- 不是位元組數. 例如,如果堆疊為16位寬度,usStackDepth定義為 100, 200 位元組,這些將分配給堆疊。堆疊巢狀深度(堆疊寬度)不能超多最大值——包含了size_t型別的變數
pvParameters
指標用於作為一個引數傳向建立的任務
uxPriority
任務執行時的優先順序( 0 : 優先順序最低)
pvCreatedTask
用於傳遞一個處理——引用建立的任務
 

相關推薦

ESP32那些事兒()瑞士軍刀ESP32常用API分析

事實上,所有在esp32上用到的api在esp-idf中都能找到,但是對於我們來講這是一個大而全的API參考指南,在專案的初期,我們沒有必要花費太多的時間詳細的閱讀每一個API的使用,挑一些常用的API進行學習,而後再根據使用情況來查詢參考文件,這樣才能達到事半功倍的效果,那

ESP32那些事兒(六)功能開發藍芽及WiFi功能

    我們的裝置類似藍芽音箱的功能,在使用a2dp的過程中也是有很多bug的,比方說暫停後雜音、藍芽聲音卡頓、系統panic等,希望後續的esp-idf都已經解決了,如果遇到類似的問題,我們也可以在部落格中討論,在此就不一一贅述了。

ESP32那些事兒(二)磨刀不誤砍柴功-做好專案開發前的準備工作

       如果你是第一次接觸FreeRTOS和ESPRESSIF的產品,例如我,那還是要先來個整體印象,然後再逐個深化。做專案的都知道,老闆們是不允許我們四平八穩的研究完然後再開始專案。        那也不妨礙咱們

高可用Redis(六)瑞士軍刀bitmap,HyperLoglog和GEO

1.bitmap點陣圖 1.1 bitmap點陣圖的概念 首先來看一個例子,字串big, 字母b的ASCII碼為98,轉換成二進位制為 01100010 字母i的ASCII碼為105,轉換成二進位制為 01101001 字母g的ASCII碼為103,轉換成二進位制為 01100111 如果在Redis中,設定

ESP32那些事兒(一)前言

     剛剛換了一家新東家,本來去之前說是有一個巨集偉的產品,去之後卻是要先從一個IOT小產品開始。剛開始有點小失望,不過自從選型為ESP32這款小網紅晶片後,覺得嘗試一下未嘗不可。對我等做過手機、電視、PAD的老嵌入式程式設計師來說,這不是小CASE嘛。不過經過幾個禮拜的

HTML5遊戲開發()飛機大戰讓所有元素動起來

《HTML5遊戲開發》系列文章的目的有:一、以最小的成本去入門egret小專案開發,官方的教程一直都是面向中重型;二、egret可以非常輕量;三、egret相比PIXI.js和spritejs文件更成熟、友好;四、學習從0打造高效的開發工作流。 HTML5遊戲開發(一):3分鐘建立一個hello wo

Spring Cloud Eureka服務註冊中心(HA版)

1. Eureka簡介 2. 程式碼實現 2.1涉及的模組 eureka-server-ha:通過profiles指定不同的埠來模擬多服務例項。 eureka-service:服務提供者 2.2

java基礎()spring aop @aspect

Aspectj切入點語法定義 例如定義切入點表示式 execution(* com.sample.service.impl….(…)) 一:execution()是最常用的切點函式,其語法如下所示: pointcut 宣告"切入點", 整個表示式可以分為五個部分

Java分析系列常見的Thread Dump日誌案例分析

目錄 [隱藏] 症狀及解決方案 下面列出幾種常見的症狀即對應的解決方案: CPU佔用率很高,響應很慢 按照《Java記憶體洩漏分析系列之一:使用jstack定位執行緒堆疊資訊》中所說的方法,先找到佔用CPU的程序,然後再定位到對應的執行緒,最後分析出對應的堆疊資訊

Matlab數學建模()優化模型標準模型

一、學習目標 (1)瞭解最優化模型。 (2)掌握線性規劃的優化求解。 (3)掌握整數規劃的優化求解。 (4)瞭解Matlab的圖形化應用。 二、例項演練      1、談談你對最優化模型的瞭解。         最優化模型是數學建模大賽中最常見的問題型別之一。一

Docker()Docker 三劍客 Docker Machine

Docker Machine 介紹 Docker Machine 是 Docker 官方編排(Orchestration)專案之一,負責在多種平臺上快速安裝 Docker 環境。 Docker Machine 是一個工具,它允許你在虛擬宿主機上安裝 Docker Engine ,並使用 docker-mac

Android JNI 學習()JNI 接口整理 — References Api

-a delet 內存 引用 5.4 cap 兼容 error span 1. NewGlobalRef(創建全局引用) jobjectNewGlobalRef(JNIEnv *env, jobject obj); 創建 obj 參數所引用對象的新全局引用。obj 參數

Java程式設計技術分享Java併發Fork-Join框架分析

1、什麼是Fork/Join框架 及產生背景 Fork/Join框架是Java7提供了的一個用於並行執行任務的框架, 是一個把大任務分割成若干個小任務,最終彙總每個小任務結果後得到大任務結果的框架。上邊是書上的定義。 我們用粗話說:Fork/Join是一個框架,來解決執行效率,手段是並行,但

UI“三重天”selenium--常用API和問題處理(三)

Selenium常用API: 前面兩篇示例程式碼中用到了一些selenium的API方法,例如定位元素的八種方法、訪問url、等待、操作瀏覽器、獲取title、點選、清理等等。 有關於selenium的常用API在園子中有寫的非常詳細的文章。先貼大佬文章地址:https://www.cnblogs.com

40-天亮大資料系列教程Spark常用運算元分析與應用

目錄 1、運算元概述 2、Spark運算元介紹與應用 3、經典運算元練習 詳情 1、運算元概述 什麼是運算元 英文翻譯為:Operator(簡稱op) 狹義:指從一個函式空間到另一個函式空間(或它自身)的對映。 廣義:指從一個空間到另一個空間的對

JavaJavassistの常用API-yellowcong

1 package com.swust.javassist; 2 3 import java.lang.reflect.Field; 4 import java.lang.reflect.Method; 5 import java.util.Arrays; 6 7 impor

Android中的自繪View的那些事兒 遮罩濾鏡BlurMaskFilter 和 EmbossMaskFilter 的簡介

MaskFilter MaskFilter翻譯過來叫遮罩濾鏡,它可以為Paint邊緣的alpha通道應用轉換。目前有兩個子類:BlurMaskFilter 和 EmbossMaskFilter。它們分別可實現出模糊效果和浮雕效果。 BlurMaskFilter BlurM

細說網路那些事兒網路基本功(一)細說網路傳輸

網路基本功(一):細說網路傳輸 常言道:欲練神功,必先練好基本功。之前做了一個關於IP路由,預設閘道器和掩碼的問答貼,做完這個帖子覺得如果對網路知識點做一個系統的闡述,應該會很有幫助。 本系列文章著重於講解網路管理實際應用中常常涉及的重要知識點,儘量以實用為主。準備

【黑金原創教程】【FPGA那些事兒-驅動篇I 】實驗按鍵模組④ — 點選,長點選,雙擊

實驗五:按鍵模組④ — 點選,長點選,雙擊 實驗二至實驗四,我們一共完成如下有效按鍵: l 點選(按下有效) l 點選(釋放有效) l 長擊(長按下有效) l 雙擊(連續按下有效) 然而,不管哪個實驗都是隻有兩項“功能”的按鍵模組而已,如今我們要建立三項“功能”的按鍵模組,亦即點選(按下有效),長

【黑金原創教程】【FPGA那些事兒-驅動篇I 】實驗二十SDHC模組

實驗二十五:SDHC模組 筆者曾經說過,SD卡發展至今已經衍生許多版本,實驗二十四就是針對版本SDV1.×的SD卡。實驗二十四也說過,CMD24還有CMD17會故意偏移地址29,讓原本範圍指向從原本的232 變成 223,原因是SD卡讀寫一次都有512個位元組。為此我們可以這樣計算: SDV1.x = 2