第一章 本書學習方法
為了讓大家更好的學習和使用本書,本章將給大家介紹一下本書的學習方法,包括:本書的學習順序、編寫規范、代碼規范、資料查找、學習建議等內容。
本章將分為如下幾個小節:
1.1 本書學習順序
1.2 本書參考資料
1.3 本書編寫規范
1.4 本書代碼規范
1.5 例程資源說明
1.6 學習資料查找
1.7 給初學者的建議
1.1 本書學習順序
為了讓大家更好的學習和使用本書,我們做了以下幾點考慮:
1,堅持循序漸進的思路編寫,從基礎到入門,從簡單到復雜。
2,將知識進行分類介紹,簡化學習過程,包括:基礎篇、入門篇、提高篇。
3,將板卡硬件資源介紹獨立成一個文檔(《ESP32-S3開發板硬件參考手冊.pdf》)。
因此,開發者在學習本書的時候,我們建議:先通讀一遍《ESP32-S3開發板硬件參考手冊.pdf》,對板卡的硬件資源有個大概的了解,然后從本書的基礎篇開始,再到入門篇,最后是提高篇,循序漸進,逐一攻克。
對于初學者,更是要按照以上建議的學習路線進行學習,不要跳躍式學習,因為本書中的知識是環環相扣的,如果沒有掌握前面的知識,就去學習后面的知識,就會學的非常吃力。
對于已經有了一定單片機基礎的開發者,就可以跳躍式地學習,學習效率,當然了,若是遇到不懂的知識點,也得查閱前面的知識點進行鞏固。
1.2 本書參考資料
本書主要參考的資料有以下兩份文檔:
《esp32-s3-wroom-1_wroom-1u_datasheet_cn.pdf數據手冊》
《esp32-s3_technical_reference_manual_cn.pdf技術手冊》
前者是樂鑫官方針對S3系列ESP32-S3提供的數據手冊,該數據手冊提供了關于這些微控制器的詳細信息,包括它們的特性、性能指標、引腳布局、電路原理圖以及其他相關的技術文檔。這對于開發人員、工程師和愛好者來說是非常有用的,可以幫助他們了解和使用這些微控制器,以及設計相關的嵌入式和物聯網應用。
后者是樂鑫官方針對S3系列ESP32-S3提供的技術參考手冊,該技術參考手冊包含了對Xtensa32位雙內核和其使用的指令集、寄存器、外設描述等的支持文檔。
以上提及的兩份文檔也是開發者在學習本書的過程中必不可少的參考資料,開發者可以在A盤à8,ESP32-S3參考資料中找到這兩份文檔。
1.3 本書編寫規范
本書通過數十個例程,給大家詳細介紹ESP32-S3的所有功能和外設,按難易程度以及知識結構,我們將本書分為三個篇章:基礎篇、入門篇和提高篇。
基礎篇,共9章,主要是一些基礎知識介紹,包括開發環境搭建、新建工程、ESP32-IDF介紹和menuconfig介紹等,這些章節在結構上沒有共性,但是互相有關聯,有一個集成的關系在里面,即:必須先學了前面的知識,才好學習后面的知識點。
入門篇和提高篇,共五十五章,詳細介紹了ESP32-S3每一個外設的使用方法及驅動代碼,并且還介紹了一些非常實用的程序代碼(純軟件例程),如:內存管理、文件系統讀寫、SD卡讀取、圖片解碼、音頻解碼、視頻解碼、USB、Wi-Fi、AI以及人臉識別等。這兩篇內容占了本書的絕大部分篇幅,而且這些章節在結構上都比較有共性,一般分為4個部分,如下:
1,外設功能介紹
2,硬件設計
3,程序設計
4,下載驗證
外設功能介紹,簡單介紹具體章節所要用到的外設功能、框圖和寄存器等,讓大家對所用外設的功能有一個基本了解,方便后面的程序設計。
硬件設計,包括具體章節的實驗具體功能說明、所用到的硬件資源及原理圖連接方式,從而知道要做什么?需要用到哪些IO口?是怎么接線的?方便程序設計的時候編寫驅動代碼。
程序設計,一般包括:驅動介紹、配置步驟、程序流程圖、關鍵代碼分析、main函數講解等三部分。一點點介紹程序代碼是怎么來的,注意事項等,從而學會整個代碼。
下載驗證,屬于實踐環節,在完成程序設計后,教大家如何下載并驗證我們的例程是否正確? 完成一個閉環過程。
1.4 本書代碼規范
為了方便大家編寫高質量代碼,我們對本書的代碼風格進行了統一,詳細的代碼規范說明文檔,見光盤:A盤à1,入門資料à《嵌入式單片機C代碼規范與風格.pdf》,初學者務必好好學習一下這個文檔。
總結幾個規范的關鍵點:
1,所有函數/變量名字非特殊情況,一般使用小寫字母;
2,注釋風格使用doxgen風格,除屏蔽外,一律使用/* */ 方式進行注釋;
3,TAB鍵統一使用4個空格對齊,不使用默認的方式進行對齊;
4,每兩個函數之間,一般有且只有一個空行;
5,相對獨立的程序塊之間,使用一個空行隔開;
6,全局變量命名一般用g_開頭,全局指針命名一般用p_開頭;
7,if、for、while、do、case、switch、default等語句單獨占一行,一般無論有多少行執行語句,都要用加括號:{}。
1.5 例程資源說明
ESP32-S3開發板的配套資料中,除了《00_basic》之外,還提供了37個標準例程。這些例程都是基于C語言和ESP32-IDF進行編寫的。這些例程大部分是原創的,并附有詳細的注釋,代碼風格統一,內容循序漸進,非常適合初學者入門。
ESP32-S3開發板配套的例程如下表所示:
從上表可以看出,正點原子DNESP32S3 開發板的例程基本上涵蓋了ESP32-S3芯片的所有內部資源,并且外擴展了很多有價值的例程,比如:基礎入門實驗、攝像頭、RGB、觸摸、物聯網、AI等。
而且從上表可以看出,例程安排是循序漸進的,首先從最基礎的新建一個工程開始,然后一步步深入,從簡單到復雜,有利于大家的學習和掌握。所以,正點原子ESP32-S3開發板是非常適合初學者的。當然,對于想深入了解ESP32-S3內部資源的朋友,正點原子ESP32-S3開發板也絕對是一個不錯的選擇。
1.6 學習資料查找
1,ESP-IDF編程指南
ESP-IDF編程指南包含了ESP官方推出的幾款芯片的編程指南,這里我們選擇ESP32-S系列的ESP32-S3即可,如下圖所示:
ESP-IDF編程指南包含了IDF的快速入門、API參考、H/W硬件參考以及API指南等,我們在開發過程中主要用到API參考,如下圖示:
該教程是針對ESP32-S3芯片及IDF開發的詳細指南,包括硬件準備、IDF編程及使用等方面。通過該教程的學習和實踐,讀者可以掌握使用IDF進行ESP32開發的基本技能和方法,并能更好地應用ESP32進行物聯網應用開發。
2,ESP官方論壇
ESP官方論壇網址,讀者可在該論壇上獲取相應的ESP資料。為了方便開發者學習,ESP官方論壇分別提供了中、英文兩種語言的論壇,如下圖所示:
讀者可以根據您的需求進行選擇使用哪一種語言的社區來進行學習。
3,正點原子的學習資料
正點原子提供了大量的學習資料,為方便讀者下載所有正點原子最新最全的學習資料,這些資料都放在正點原子文檔中心,如下圖所示(正點原子文檔中心會不時地更新,以保證為讀者提供最新的學習資料):
在文檔中心下面,我們可以找到正點原子所有開發板、模塊、產品等的詳細資料下載地址。
4,正點原子論壇
正點原子論壇,即開源電子網,該論壇從2010年成立至今,已有十多年的時間,擁有數十萬的注冊用戶和大量嵌入式相關的帖子,每天有數百人互動,是一個非常好的嵌入式學習交流平臺。
5,博客和教程網站
在互聯網上搜索與ESP32-S3和IDF相關的博客和教程網站。這些網站通常會提供詳細的步驟和示例代碼,幫助您逐步掌握ESP32-S3的開發技巧。
6,視頻教程
在B站等視頻平臺上搜索與ESP32-S3和IDF相關的教程視頻。這些視頻可以直觀地展示開發過程和示例代碼的執行效果,有助于初學者快速入門。
7,在線課程和教育資源
尋找與ESP32-S3和IDF相關的在線課程和教育資源,例如在線教程、視頻課程、教科書等。這些資源通常由教育機構、專業網站或個人開發者提供。
總之,通過以上方法,您可以找到大量與ESP32-S3和IDF開發相關的資料。在查找和學習過程中,請注意選擇可靠和最新的資源,并根據自己的需求和水平進行選擇和學習。
在學習過程中,我們難免會遇到一些問題,有任何問題,大家都可以先去開源電子網搜索一下,基本上你能遇到的問題,我們論壇都有人問過了,所以可以很方便的找到一些參考解決方法。如果實在找不到,你也可以在論壇提問,每天原子哥都會在上面給大家做解答。
1.7 給初學者的建議
學習ESP32-S3的三點建議:
1,準備開發板:選擇適合的開發板,并配備調試接口,以便在實際開發板上運行和調試程序。這有助于加深對程序執行過程的理解,并方便查找和解決錯誤。
2,閱讀參考資料:《esp32-s3-wroom-1_wroom-1u_datasheet_cn.pdf數據手冊》、《esp32-s3_technical_reference_manual_cn.pdf技術規格書》和《isa-summary.pdf》是學習ESP32的重要參考資料。這些手冊對于理解ESP32-S3和Xtensa? LX7內核有很大幫助,尤其是對于初學者,需要多看多了解。
3,保持耐心和積極態度:學習ESP32-S3需要時間和耐心,遇到問題和難點時不能氣餒或逃避。嘗試自己解決問題,掌握解決問題的技巧和方法。同時要勤于思考和實踐,舉一反三,通過實踐來加深理解和掌握知識。如果C語言基礎不夠扎實,建議先學習C語言基礎,以便更好地理解和掌握ESP32-S3的相關知識。