1. 概述
我在做單片機(jī)或嵌入式開(kāi)發(fā)术羔,接觸到的第一個(gè)IDE(集成的開(kāi)發(fā)環(huán)境)就是Keil杨箭,記得還是Keil2寞焙。但用過(guò)它的人都知道,雖然Keil是嵌入式開(kāi)發(fā)工具屆的經(jīng)典互婿,但是代碼在代碼編寫(xiě)捣郊、提示、檢索等方面還有所欠缺慈参。
使用過(guò)VSCode的呛牲,都被其開(kāi)放和簡(jiǎn)約優(yōu)雅折服!
VSCode作為一個(gè)Editor驮配,能否彌補(bǔ)Keil編輯器的欠缺呢娘扩?答案是可以的着茸。下面來(lái)介紹下怎么使用VSCode來(lái)編寫(xiě)單片機(jī)代碼。
2. VSCode 嵌入式開(kāi)發(fā)
首先需要安裝VSCode琐旁,這里略去涮阔,讀者自行百度即可,這里給出官網(wǎng)安裝文檔灰殴。
使用VSCode做嵌入式開(kāi)發(fā)敬特,基本分兩種:一種是VSCode+Keil插件,一種是VSCode+PlatformIO IDE插件牺陶。
無(wú)論哪種方式擅羞,都離不開(kāi)C語(yǔ)言開(kāi)發(fā)環(huán)境支持。所以VSCode需要先安裝C/C++支持义图。
2.1. VSCode搭建C/C++支持
這里不廢話,直接給出 VSCode 官網(wǎng)教程召烂,這里已經(jīng)描述的很詳細(xì)了碱工。
- Windows系統(tǒng)上配置:https://code.visualstudio.com/docs/cpp/config-mingw
- Linux系統(tǒng)上配置:https://code.visualstudio.com/docs/cpp/config-linux
- macOS上配置:https://code.visualstudio.com/docs/cpp/config-clang-mac
2.2. VSCode+Keil 插件
原理就是通過(guò)調(diào)用Uv4.exe來(lái)編譯項(xiàng)目源碼。這個(gè)方式相對(duì)簡(jiǎn)單奏夫,尤其是對(duì)于熟悉 Keil 的同學(xué)怕篷。
2.2.1 Keil 安裝
同樣的,按照步驟自行百度酗昼。這里給出官網(wǎng)下載地址廊谓。
注意下,Keil有四種產(chǎn)品麻削。
每個(gè)產(chǎn)品都是基于μVision+各自庫(kù)文件構(gòu)成蒸痹。
筆者使用最多的是MDK-Arm和C51,分別下載兩個(gè)產(chǎn)品呛哟,安裝到一起叠荠,分別激活兩個(gè)產(chǎn)品License。
2.2.2. Keil 插件安裝
安裝 Keil Assistant 插件扫责。
2.1.3. Keil 插件配置
配置 Keil 的 UV4.exe 文件路徑榛鼎。我這里安裝了C51和MDK兩個(gè)產(chǎn)品,所以配置兩個(gè)鳖孤。
2.2.4. 編譯下載
VSCode 打開(kāi)工作區(qū)(就是自己項(xiàng)目的目錄)者娱,一般會(huì)自動(dòng)識(shí)別Keil項(xiàng)目文件(xxx.uvpro 文件)。如果沒(méi)有識(shí)別可以手動(dòng)添加苏揣。完成后像下面這個(gè)樣子黄鳍。
現(xiàn)在可以愉快的編碼了。平匈。际起。完成后可以編譯拾碌,這里編譯實(shí)際上跟 Keil 中編譯一樣(其實(shí)就是調(diào)用Keil編譯,所以添加item文件、項(xiàng)目配置都需要回到Keil操作)咙崎。
2.2.5. 優(yōu)缺點(diǎn)對(duì)比
優(yōu)點(diǎn):
- 代碼提示鼠冕、搜索功能強(qiáng)大,開(kāi)發(fā)更快捷防症、高效。
- 可以快捷加入git項(xiàng)目版本管理哎甲。
缺點(diǎn):
- 添加項(xiàng)目文件蔫敲,庫(kù)文件等,需要切換到 Keil 管理炭玫。
- 無(wú)法DEBUG(我目前還未找到奈嘿,有知道的同學(xué)請(qǐng)告知)。
我一般是利用VSCode的強(qiáng)大編輯功能編碼吞加,用Keil的仿真軟件調(diào)試裙犹。
2.3. VSCode+PlatformIO IDE插件
PlatformIO IDE for VSCode — Quick-Start
2.3.1. PlatformIO IDE 介紹
PlatformIO 是一個(gè)跨平臺(tái)、跨架構(gòu)衔憨、多框架的專業(yè)工具叶圃,適用于嵌入式系統(tǒng)工程師和為嵌入式產(chǎn)品編寫(xiě)應(yīng)用程序的軟件開(kāi)發(fā)人員。官網(wǎng)對(duì)它的描述就是:嵌入式 C/C++ 開(kāi)發(fā)的新一代工具集践图。
PlatformIO 核心是由Python編寫(xiě)掺冠,獨(dú)立于平臺(tái)平臺(tái)運(yùn)行的。支持現(xiàn)在主流的平臺(tái)(Windows码党、Linux德崭、macOS、ARM卡片電腦等)揖盘、單片機(jī)(ATmega接癌、STC、STM32扣讼、ESP32等)和框架(Arduino缺猛、CMSIS、FreeRTOS等)椭符,使用標(biāo)準(zhǔn)項(xiàng)目模板荔燎,并支持多人協(xié)作。項(xiàng)目跨平臺(tái)移植便捷销钝,最重要的是開(kāi)源有咨。
2.3.2. PlatformIO IDE 插件安裝
按照下面安裝插件,安裝完成后重啟 VSCode蒸健。左邊導(dǎo)航欄會(huì)出現(xiàn)PlatformIO圖標(biāo)座享。Platformio IDE 工具欄位于 VSCode 狀態(tài)欄(左下角)婉商,包含了常用命令的快速訪問(wèn)按鈕(鼠標(biāo)放在上面會(huì)有提示)。
進(jìn)入 PIO Home 主頁(yè)渣叛,可以通過(guò)下圖左邊導(dǎo)航欄進(jìn)入丈秩,也可以通過(guò)底部導(dǎo)航欄“[房子]”直接進(jìn)入。
2.3.3. PlatformIO IDE 創(chuàng)建項(xiàng)目
點(diǎn)擊“New Project”使用項(xiàng)目向?qū)?chuàng)建一個(gè)項(xiàng)目淳衙,注意取消“Location”選鉤蘑秽,選自定義目錄存放項(xiàng)目工程。
這里以我的 ESP-WROOM-32 開(kāi)發(fā)板為例箫攀。第一次創(chuàng)建肠牲,需要下載依賴包、框架等靴跛,所以比較慢缀雳!
Board - 選在自己的開(kāi)發(fā)板型號(hào)
Framework - 開(kāi)發(fā)板對(duì)應(yīng)支持的框架。不同的開(kāi)發(fā)板型號(hào)梢睛,所支持的框架有所不同肥印。
2.3.4. 編譯下載
創(chuàng)建完成后,項(xiàng)目長(zhǎng)這個(gè)樣子扬绪。
編碼完成后,點(diǎn)擊底部導(dǎo)航欄的“√”進(jìn)行編譯裤唠。編譯通過(guò)后挤牛,點(diǎn)擊底部"→"下載代碼到開(kāi)發(fā)板
2.3.5. 優(yōu)點(diǎn)
首先是PlatformIO根據(jù)開(kāi)發(fā)板,可以根據(jù)框架快速構(gòu)建項(xiàng)目种蘸,讓我們可以把更多的時(shí)間和精力投放到產(chǎn)品和項(xiàng)目需求上來(lái)墓赴。
其他的~~~我也還在體驗(yàn)中,不過(guò)網(wǎng)上看大家投在推薦航瞭!
3. 結(jié)尾
不妨去嘗試一下新事物诫硕!
值得一提的是,PIO 也支持51單片機(jī)(好像有部分51支持不全)刊侯,51使用的SDCC(Small Device C compiler suite)編譯器章办。SDCC的語(yǔ)法擴(kuò)展與Keil的語(yǔ)法擴(kuò)展不同。
語(yǔ)法擴(kuò)展 項(xiàng)目 SDCC Keil 擴(kuò)展關(guān)鍵字名稱 以兩個(gè)下劃線開(kāi)頭,如__interrupt, __bit 無(wú)需下劃線 特殊功能寄存器(SFR)的聲明方式 __sfr __at (0x80) P1; sfr P1 = 0x80; 特殊功能寄存器位尋址的聲明方式 __sbit __at (0x87) P17; sbit P17 = P1^7; 中斷服務(wù)(ISR)函數(shù)的鏈接 需要在main函數(shù)前聲明 不需要