為初學(xué)者打造一本全方位介紹單片機(jī)入門與進(jìn)階的圖書,幫助初學(xué)者入門,并梳理單片機(jī)學(xué)習(xí)過程中的整個脈絡(luò)是本書的主旨。可能有讀者會問,市面上有這么多單片機(jī)入門書和視頻,本書在內(nèi)容上有什么優(yōu)勢?這里簡單談?wù)勛约旱目捶,筆者曾經(jīng)帶過很多初學(xué)者,也經(jīng)常與剛踏入單片機(jī)行業(yè)或放棄該行業(yè)的從業(yè)者進(jìn)行交流,加上筆者本身是通過一步步自學(xué)過來的,對單片機(jī)學(xué)習(xí)過程中的坑深有體會,這里所講的坑倒也不是學(xué)習(xí)單片機(jī)本身面臨的知識點難度,而是適合初學(xué)者的一套學(xué)習(xí)方法。所以在本書中,讀者也將看到介紹方法與思路貫穿全書。其實各行各業(yè)都一樣,入門這一步非常困難,困難在剛開始讀者對很多知識(以單片機(jī)為例: C語言、單片機(jī)原理、模擬電路基礎(chǔ)知識、數(shù)字電路基礎(chǔ)知識、計算機(jī)原理、I2C總線、SPI總線、寄存器)都不懂,不知道從何學(xué)起,但是一旦入門,很多讀者經(jīng)常會感慨原來就這么回事,脈絡(luò)清晰了,怎么去補(bǔ)充知識,怎么去學(xué),自然而然也就清晰了。本書內(nèi)容僅僅幫助初學(xué)者如何去學(xué)習(xí),限于篇幅,許多知識點沒有進(jìn)一步展開介紹,俗話說得好: 師傅領(lǐng)進(jìn)門,修行靠個人。單片機(jī)和嵌入式開發(fā)也一樣,入門之后,可每個人根據(jù)職業(yè)規(guī)劃或愛好朝著自己的方向不斷地補(bǔ)充新的知識和技能。
許多初學(xué)者以為單片機(jī)開發(fā)就是寫代碼,在筆者看來,寫代碼應(yīng)該放到最后一步。首先讀者需要將整個單片機(jī)項目分解、細(xì)化,看一下哪些知識點是自己熟悉的,哪些知識點是自己不熟悉的,不熟悉的知識點再進(jìn)一步分解成哪些是需要花時間與精力解決的,整個項目要使用什么樣的軟件框架,把關(guān)鍵問題解決之后再去寫代碼,會起到事半功倍的效果。
掌握模塊化設(shè)計思路,其實各行各業(yè)都有這種模塊化思想,例如一輛機(jī)動車自上而下看包括發(fā)動機(jī)、變速箱、底盤、外觀、內(nèi)飾等,如果再進(jìn)一步分解發(fā)動機(jī),則包括排氣系統(tǒng)、進(jìn)氣系統(tǒng)、冷卻系統(tǒng)、燃油系統(tǒng)、配氣機(jī)構(gòu)、曲軸連桿等模塊。單片機(jī)系統(tǒng)中這種模塊化思想也體現(xiàn)得淋漓盡致,一個單片機(jī)包括CPU、RAM、Flash、時鐘系統(tǒng)、輸入輸出(I/O)、I2C、SPI、串口、定時器、RTC模塊等;一個單片機(jī)項目包含的程序模塊通常有數(shù)字輸入模塊、數(shù)字輸出模塊、通信模塊、系統(tǒng)調(diào)度模塊等,掌握這種模塊化設(shè)計思想會讓你在各行各業(yè)中獲益良多。
筆者是個物理愛好者,大學(xué)期間學(xué)的也是物理學(xué)專業(yè),出于對電子技術(shù)的熱愛,從大二開始,不斷參加各種科技、電子協(xié)會,幫助班上和在校同學(xué)解決各種電器問題,小到吹風(fēng)機(jī)、音響,大到電視機(jī)、計算機(jī)、空調(diào)、洗衣機(jī)等,還多次積極協(xié)助組織參與三下鄉(xiāng)活動,將科技知識帶進(jìn)農(nóng)村,為老百姓切切實實答疑解惑并解決實際電器問題。此外,筆者也多次參加各層級舉辦的電子類競賽,盡管有的比賽成績不是很理想,但是在競賽過程中都能學(xué)有所獲,受益良多。正是這些實戰(zhàn)經(jīng)歷,使筆者在很多方面對單片機(jī)和嵌入式的理解比較獨特,也希望這些獨特的理解能幫到各位讀者。
本書內(nèi)容安排從每個階段實用的角度出發(fā),秉持著通俗易懂的原則,第一部分主要介紹單片機(jī)入門知識,與眾多介紹單片機(jī)入門的方式不同,筆者特地選擇了市面上常用的4種單片機(jī)(STC89C52RC、PIC16、MSP430和STM32)與開源界非常流行的Arduino開發(fā)平臺進(jìn)行對比,一方面通過對比幫助讀者了解不同單片機(jī)的開發(fā)方式; 另一方面也可以總結(jié)這些單片機(jī)開發(fā)方式的共同點,以便讀者以后碰到新單片機(jī)時可以將這種技巧快速應(yīng)用其中。另外需要指出的是,關(guān)于上面4款單片機(jī)其實在業(yè)內(nèi)有非常優(yōu)秀的入門教程,8051單片機(jī)有郭老師的《10天學(xué)會單片機(jī)》視頻、STM32有野火的《零死角玩轉(zhuǎn)STM32》和正點原子的《手把手教你學(xué)STM32》,所以在介紹該部分內(nèi)容時筆者只挑重點,有些甚至是一筆帶過,但是該部分資料都會統(tǒng)一放在本書提供的資源中。
一直以來,單片機(jī)進(jìn)階是很多初學(xué)者面臨的老大難問題,一方面市面上系統(tǒng)性的書籍比較少; 另一方面單片機(jī)進(jìn)階學(xué)習(xí)需要結(jié)合實際項目,單純通過理論方式很難將這些經(jīng)驗描述到位。筆者花了很多心思梳理了單片機(jī)進(jìn)階的整個知識框架,從第16章在實際工程應(yīng)用中的電路著手到第17章的軟件痛點分析,其中參考了網(wǎng)上大量文章及初具規(guī)模公司中實用的一些規(guī)范; 第18章介紹了基礎(chǔ)版的代碼規(guī)范,旨在幫助讀者養(yǎng)成一個良好的代碼編寫習(xí)慣。實際項目中的程序往往是復(fù)雜但又有跡可循的; 第19章特地介紹了如何編寫模塊化程序,以便讀者更好地讀懂和編寫有一定代碼量的單片機(jī)程序,而要做好一個單片機(jī)項目,特別是在多人協(xié)作開發(fā)時,一個好的研發(fā)流程顯得尤為重要,很多技術(shù)公司發(fā)展到一定規(guī)模后都面臨流程上的問題; 第20章以一個實際的案例介紹了一個完整項目的基本開發(fā)流程,為了更進(jìn)一步讓讀者對這種開發(fā)方式有所理解; 第21章特地補(bǔ)充了一個實際做好的項目,幫助讀者鞏固研發(fā)流程; 從第22章開始主要介紹一些實際項目中的技巧,例如第22章中的狀態(tài)機(jī)原理及實際項目中哪些地方用到狀態(tài)機(jī),并進(jìn)一步延伸出狀態(tài)機(jī)更廣泛的用途; 第23章則使用通俗易懂的方式介紹操作系統(tǒng)方式編程和如何打造一個基礎(chǔ)版的操作系統(tǒng),通過與市面上主流的實時系統(tǒng)C/OSⅡ做對比,讀者會發(fā)現(xiàn)其實開發(fā)操作系統(tǒng)也沒有想象中那么難。在校期間,很多計算機(jī)與電子類專業(yè)學(xué)生經(jīng)常會聽到老師說算法才是程序的靈魂,但是算法到底是什么及單片機(jī)中算法該如何應(yīng)用在第24章中進(jìn)行了詳細(xì)介紹。為了讓讀者進(jìn)一步認(rèn)識算法; 第25章和第26章詳細(xì)介紹了兩個非常熟悉的游戲(貪吃蛇與俄羅斯方塊)在Windows和單片機(jī)上的實現(xiàn)方式,讓讀者可以更進(jìn)一步地理解算法的本質(zhì)。單片機(jī)軟件本身是抽象的,單片機(jī)能實現(xiàn)相應(yīng)功能,其實主要是程序編寫者的功勞,為了將這些單片機(jī)資源利用好,數(shù)據(jù)結(jié)構(gòu)起到了重要作用,第26章還詳細(xì)介紹了單片機(jī)中常用的幾種數(shù)據(jù)結(jié)構(gòu)。許多單片機(jī)入門者包括從業(yè)多年的工程師對于如何維護(hù)代碼一直比較模糊,特別是多人協(xié)作開發(fā)同一個項目時,這種問題顯得尤為突出; 第27章針對當(dāng)前流行的分布式代碼版本管理作了基礎(chǔ)和實用的介紹,這種管理方式無論是對于寫代碼還是文檔管理都是一個非常不錯的選擇。筆者認(rèn)為技術(shù)從業(yè)者要勇于探索和擁抱新的技術(shù)、新的開發(fā)方式,人類社會的進(jìn)步就是機(jī)器不斷取代人力的過程,單片機(jī)開發(fā)也一樣,特別是長期從事單片機(jī)開發(fā)行業(yè)的工程師應(yīng)該有感觸,絕大部分時間是在做一些普通人都能做的事情,對于一款單片機(jī)來講它的資源、開發(fā)方式基本上是固定的,所以第28章介紹了一種基于模型的開發(fā)方式,這種開發(fā)方式在未來一定會得到全面普及,只是以何種方式、何時出現(xiàn)的問題。一個好的工具、平臺同樣也能提高項目的開發(fā)效率,第29章介紹的Arduino開發(fā)平臺,盡管許多讀者非常熟悉,但是也希望通過本書的這種介紹方式使讀者能對開源平臺有一個全新的理解,而第30章的VS Code也算是微軟近年來的大作,幾乎橫跨整個代碼界,其便捷性和可擴(kuò)展性給工程師帶來了極大的便利性。
最后感謝周圍關(guān)心與支持筆者的親人與朋友。
本書寫作過程比較倉促,書中難免存在疏漏之處,希望讀者能夠批評指正,也真心希望讀者能通過本書學(xué)到或悟到一些對您有用的東西。
王良升2022年10月
配套資源
入門篇
第1章經(jīng)典的LED例子
1.18051單片機(jī)點亮LED
1.2PIC單片機(jī)點亮LED
1.3MSP430單片機(jī)點亮LED
1.4STM32單片機(jī)點亮LED
1.5Arduino點亮LED
第2章LED點亮例子剖析
2.1LED電路解析
2.2單片機(jī)科普
2.2.1計算機(jī)主板
2.2.2手機(jī)CPU
2.2.3單片機(jī)內(nèi)部組成
2.3單片機(jī)運(yùn)行程序解剖
2.3.1CPU運(yùn)行程序的本質(zhì)
2.3.2點亮一顆LED匯編代碼剖析
第3章初學(xué)者搭建電路神器面包板
3.1初學(xué)者使用面包板的好處
3.2面包板使用簡介
3.3面包板在實際項目中的妙用
3.3.1原型電路驗證
3.3.2單片機(jī)連接分立元器件或模塊
3.3.3多平臺、多模塊系統(tǒng)驗證
第4章開發(fā)環(huán)境搭建
4.18051單片機(jī)Keil開發(fā)環(huán)境搭建
4.1.18051單片機(jī)軟件安裝與編譯
4.1.2STC系列8051單片機(jī)固件下載
4.2STM32單片機(jī)開發(fā)環(huán)境搭建
4.2.1STM32單片機(jī)軟件安裝與編譯
4.2.2STM32單片機(jī)固件下載
4.3MSP430開發(fā)環(huán)境搭建
4.3.1軟件安裝與編譯
4.3.2代碼下載
4.4PIC開發(fā)環(huán)境搭建
4.4.1軟件安裝與編譯
4.4.2PIC單片機(jī)代碼下載
4.5Arduino開發(fā)環(huán)境搭建
4.5.1Arduino IDE開發(fā)環(huán)境搭建
4.5.2Arduino IDE代碼下載
4.5.3MSP430 Arduino開發(fā)環(huán)境搭建
4.6Proteus仿真環(huán)境搭建
第5章I/O端口的基本輸出多變的輸出控制
5.1I/O基本知識
5.1.1萬物皆有電阻
5.1.2歐姆定律
5.1.3I/O專業(yè)術(shù)語
5.2單片機(jī)I/O端口輸出電路內(nèi)部剖析
5.2.1STC單片機(jī)I/O端口
5.2.2PIC16單片機(jī)I/O端口
5.2.3MSP430單片機(jī)I/O端口
5.2.4STM32單片機(jī)I/O端口
5.3I/O作為輸出使用的幾種方式
5.3.1小電流輸出驅(qū)動
5.3.2電平匹配或小功率驅(qū)動
5.3.3大功率大電壓驅(qū)動
5.3.4設(shè)備工作電壓遠(yuǎn)高于安全電壓
第6章I/O端口的基本輸入不限于按鍵輸入
6.1開關(guān)基礎(chǔ)知識普及
6.1.1微動開關(guān)
6.1.2感應(yīng)開關(guān)
6.1.3電容觸摸開關(guān)
6.1.4人體感應(yīng)模塊
6.1.5普通66按鍵
6.2單片機(jī)I/O輸入模式
6.2.1上拉輸入
6.2.2下拉輸入
6.2.3浮空輸入
6.3單片機(jī)I/O端口輸入電路內(nèi)部剖析
6.3.18051單片機(jī)I/O輸入
6.3.2PIC16單片機(jī)I/O輸入
6.3.3MSP430單片機(jī)I/O輸入
6.3.4STM32單片機(jī)I/O輸入
6.4幾種常用的輸入方式
6.4.1直連單片機(jī)I/O端口
6.4.2匹配電平后連接單片機(jī)I/O端口
6.4.3超過安全電壓或跨距離信號輸入
第7章單片機(jī)引腳不夠用外掛擴(kuò)展芯片
7.1使用擴(kuò)展芯片情形及步驟
7.28051單片機(jī)驅(qū)動8線譯碼器
7.38051單片機(jī)實現(xiàn)74HC245收發(fā)器驅(qū)動
7.48051單片機(jī)驅(qū)動74HC573鎖存器
第8章中斷單片機(jī)一心多用卻不落下重要事情
8.1生活中的中斷場景
8.28051單片機(jī)外部中斷
8.3PIC16單片機(jī)中斷
8.4MSP430單片機(jī)中斷
8.5STM32單片機(jī)中斷
8.6Arduino外部中斷
8.7外部中斷總結(jié)
第9章不甘只為定時器它還有很多妙用
9.18051單片機(jī)定時器
9.2PIC16定時器
9.3MSP430定時器
9.4STM32定時器
9.5Arduino定時器
9.6定時器使用總結(jié)
第10章較少引腳多做事總線
10.1總線的誕生
10.2總線初探
10.2.1手動模擬驅(qū)動74HC595
10.2.28051單片機(jī)驅(qū)動74HC595
10.3SPI總線原理與使用
10.3.1SPI總線介紹
10.3.28051單片機(jī)驅(qū)動MCP23S08輸出
10.3.38051單片機(jī)讀取MCP23S08按鍵值
10.4I2C總線驅(qū)動PCA9554
10.4.1I2C總線簡單介紹
10.4.2輸出控制流水燈
10.4.3讀取I2C輸入數(shù)據(jù)控制LED
第11章串口通信單片機(jī)與外界溝通常用方式
11.1原始通信方式與基本模式
11.1.1單工通信模式
11.1.2半雙工通信模式
11.1.3全雙工通信模式
11.2串口通信由來
11.3串口通信單片機(jī)實現(xiàn)
11.3.18051單片機(jī)串口通信
11.3.2PIC16單片機(jī)串口通信
11.3.3MSP430單片機(jī)串口通信
11.3.4STM32單片機(jī)串口通信
11.3.5Arduino單片機(jī)串口通信
11.3.6串口通信總結(jié)
11.4同是串口通信,別被接口和協(xié)議弄糊涂
11.4.1串口通信物理接口
11.4.2串口通信協(xié)議
第12章非常重要卻常被忽略的技能調(diào)試
12.1使用硬件調(diào)試器
12.1.1PIC單片機(jī)調(diào)試
12.1.2MSP430單片機(jī)調(diào)試
12.1.3STM32調(diào)試
12.1.4單片機(jī)調(diào)試器使用總結(jié)
12.2一顆LED能反饋的信息眾多
12.2.1定時器中斷中使用LED調(diào)試
12.2.2串口通信中使用LED調(diào)試
12.2.3LED直接顯示設(shè)備狀態(tài)
12.3使用最方便的調(diào)試方式串口
12.4任何時候要有快速找到解決問題的辦法
12.4.1軟硬件問題確定
12.4.2盡可能用熟悉的東西,找可靠渠道購買
第13章有趣的顯示方式
13.1生活中的LED變形記
13.2單總線全彩燈
第14章A/D數(shù)字與模擬世界溝通的橋梁
14.1A/D原理
14.2PIC單片機(jī)A/D
14.3MSP430單片機(jī)A/D
14.4STM32單片機(jī)A/D
14.5Arduino A/D
第15章以為只是PWM,沒想到有這么多魔法
15.1PWM介紹
15.1.1多種方式實現(xiàn)PWM
15.1.2專用名詞解釋
15.2呼吸燈原理剖析
15.3舵機(jī)控制
15.4步進(jìn)電動機(jī)控制
15.4.1步進(jìn)電動機(jī)原理
15.4.2步進(jìn)電動機(jī)控制實現(xiàn)
15.5PWM直流電動機(jī)調(diào)速
提高篇
第16章學(xué)了很多東西,實際項目中如何用硬件部分
16.1實際項目電路與單片機(jī)入門電路差距
16.2供電電路
16.2.1開發(fā)板供電
16.2.2消費電子產(chǎn)品供電
16.2.3工業(yè)控制器供電
16.2.4車用控制器供電
16.2.5電源電路總結(jié)
16.3輸入電路
16.3.1開發(fā)板輸入電路
16.3.2工業(yè)輸入電路
16.3.3車用輸入電路
16.4輸出電路
16.4.1工業(yè)功率輸出電路
16.4.2車用功率輸出電路
16.5A/D采集電路
16.5.1工業(yè)A/D輸入電路
16.5.2車用A/D輸入電路
16.6通信電路
16.6.1開發(fā)板通信電路
16.6.2車用通信電路
16.7對比分析總結(jié)
第17章別讓單片機(jī)學(xué)習(xí)停留在點亮LED
17.1初學(xué)者單片機(jī)軟件能力徘徊不前
17.2怎么改變這種現(xiàn)狀
17.2.1項目分解能力
17.2.2程序框架搭建能力
17.2.3算法能力
17.3單片機(jī)成長捷徑
17.4站在巨人的肩膀上
17.4.1Arduino平臺
17.4.2開源代碼托管平臺
第18章要想路走得遠(yuǎn),編程規(guī)范少不了
18.1組織結(jié)構(gòu)
18.1.1工程文件組織結(jié)構(gòu)
18.1.2文件夾代碼組織結(jié)構(gòu)
18.1.3程序結(jié)構(gòu)
18.2標(biāo)識符命名
18.2.1命名基本原則
18.2.2宏與常量命名
18.2.3變量命名
18.2.4函數(shù)命名
18.2.5文件命名
18.3代碼排版
18.3.1代碼縮進(jìn)
18.3.2代碼分行
18.3.3頭文件
18.3.4注釋排版
18.3.5代碼可讀性
18.4注釋
18.4.1注釋基本原則
18.4.2文件注釋
18.4.3函數(shù)與代碼注釋
18.6變量、結(jié)構(gòu)、常量、宏
18.7函數(shù)規(guī)范
18.7.1函數(shù)命名
18.7.2函數(shù)參數(shù)
18.8變量和結(jié)構(gòu)規(guī)范
18.9宏表達(dá)式與常量規(guī)范
18.10表達(dá)式規(guī)范
第19章模塊化程序編寫
19.1點亮LED模塊化程序改造
19.1.1.h文件編寫
19.1.2.c文件編寫
19.2模塊化程序編寫進(jìn)階
19.3打造可重復(fù)利用的軟件模塊
第20章多功能電子鐘項目開發(fā)基本流程
20.1項目需求
20.2項目規(guī)格說明
20.3項目總體方案
20.4項目概要設(shè)計
20.4.1硬件概要方案
20.4.2軟件概要設(shè)計
20.5項目詳細(xì)設(shè)計
20.6項目調(diào)試與驗證
20.7項目測試
20.8項目批量階段
第21章網(wǎng)紅樓梯燈
21.1項目需求
21.2項目規(guī)格說明
21.3項目總體方案
21.4項目概要設(shè)計
21.4.1硬件概要方案
21.4.2軟件概要方案
21.5項目詳細(xì)設(shè)計
21.5.1硬件詳細(xì)方案
21.5.2軟件詳細(xì)方案
21.6項目調(diào)試與驗證
21.7項目測試
第22章狀態(tài)機(jī)編程,不止于按鍵
22.1狀態(tài)機(jī)實現(xiàn)按鍵功能
22.2狀態(tài)機(jī)基本原理與實現(xiàn)
22.3狀態(tài)機(jī)串口接收協(xié)議
22.3.1簡單版串口協(xié)議
22.3.2實用串口協(xié)議
第23章可以不用操作系統(tǒng),但是要會操作系統(tǒng)方式編程
23.1不要被操作系統(tǒng)嚇到,其實它也可以很簡單
23.2動手寫一個簡單操作系統(tǒng)
23.2.1構(gòu)造一個簡單的調(diào)度器
23.2.2任務(wù)更新與啟動
23.3與市面主流系統(tǒng)對比
第24章算法和程序是兩碼事
24.1程序和算法
24.1.1算法本質(zhì)
24.1.2程序本質(zhì)及與算法之間聯(lián)系
24.2單片機(jī)項目中的典型算法
24.2.1濾波算法
24.2.2PID算法
24.2.3校驗算法
24.3別在程序上花太多時間,算法才是值得付出的
第25章Windows和單片機(jī)平臺算法對比
25.1貪吃蛇
25.1.1貪吃蛇游戲?qū)崿F(xiàn)要點
25.1.2貪吃蛇原理解析
25.2Windows系統(tǒng)下貪吃蛇代碼解析
25.2.1游戲區(qū)域初始化
25.2.2繪制食物與蛇身
25.2.3檢測蛇碰撞
25.2.4蛇吃食物
25.2.5蛇身移動坐標(biāo)更新
25.2.6蛇身變換方向
25.3單片機(jī)實現(xiàn)貪吃蛇
25.3.1游戲變量與宏定義
25.3.2復(fù)位蛇身與游戲開始
25.3.3按鍵檢測與設(shè)定蛇運(yùn)動方向
25.3.4蛇身移動坐標(biāo)更新
25.3.5吃食物檢測
25.3.6產(chǎn)生新食物
25.3.7碰撞檢測
25.3.8顯示蛇與食物
25.4俄羅斯方塊
25.4.1俄羅斯方塊類型
25.4.2方塊下落顯示區(qū)域
25.4.3預(yù)覽方塊和分?jǐn)?shù)顯示
25.4.4按鍵檢測和移動方塊
25.4.5旋轉(zhuǎn)方塊
25.4.6方塊消除
第26章數(shù)據(jù)結(jié)構(gòu)感受不到你的存在
26.1鏈表多任務(wù)調(diào)度
26.1.1單向鏈表
26.1.2雙向鏈表
26.2隊列通信緩沖
26.2.1環(huán)形隊列基本操作
26.2.28051單片機(jī)隊列操作示例
26.2.3隊列操作在實時系統(tǒng)中的應(yīng)用
第27章代碼版本工具讓代碼管理更規(guī)范
27.1混亂的代碼管理方式
27.1.1復(fù)制粘貼標(biāo)題命名法
27.1.2復(fù)制粘貼日期管理法
27.3使用工具科學(xué)管理代碼,讓重復(fù)的代碼不再重復(fù)
27.3.1代碼管理軟件介紹
27.3.2代碼管理軟件安裝
27.3.3代碼管理軟件打開與使用
27.4Git科普及作用
27.4.1Git簡介
27.4.2Git能夠解決的問題
27.4.3Git實現(xiàn)原理
第28章不用寫一行代碼的開發(fā)方式基于模型開發(fā)
28.1一個基于模型的簡單例子
28.2當(dāng)你以寫代碼為榮時,殊不知正在被機(jī)器悄悄取代
28.3任意單片機(jī)使用基于模型開發(fā)
28.3.18051單片機(jī)使用Simulink模型開發(fā)
28.3.2Simulink生成模型代碼簡單剖析
28.3.3其他單片機(jī)模型移植
28.4基于模型開發(fā)方式進(jìn)階思考
第29章打造實用的Arduino平臺
29.1打造個人的Arduino開發(fā)平臺
29.1.1添加Arduino支持的單片機(jī)類型
29.1.2添加Arduino軟件庫
29.2Arduino IDE多文件工程建立
29.3多種仿真平臺總有一個適合你
29.3.1使用Proteus仿真Arduino
29.3.2在線TinkerCAD仿真
29.3.3使用在線Wokwi仿真
第30章萬能開發(fā)工具VS Code
30.1VS Code簡介
30.2VS Code開發(fā)環(huán)境搭建
30.3單片機(jī)開發(fā)平臺PlatformIO
30.3.1添加PlatformIO擴(kuò)展插件
30.3.2PlatformIO新建8051單片機(jī)工程
30.3.3PlatformIO新建Arduino工程