本文隸屬於AVR單片機教程系列。
今天去交大密院參觀了設計展,無外乎兩個主題:Arduino、Python。
關於Python,我印象最深的是一位Python程序員的話:你要硬核的話,可以去那邊看Java。
拜托,都9102年了,Java已經算得上硬核了?是Python太好用,還是Java版本更新太快了?真正的硬核,絕對BrainFuck莫屬,如果要實際一點,也是C++、Haskell之輩,當Java在他們口中稱得上硬核的時候,我覺得我可以換一個展台了。
於是我來到了全是Arduino的樓層。看到那么多Arduino,我不禁疑惑,雖然Arduino是最常見的開發板,但也不至於完全沒有STM32的蹤影吧?問了才知道,是教授要求他們用Arduino的,我也就無語了。
跟一個優秀作品設計者聊了幾句,他說同時控制舵機和揚聲器很難控制好延時,揚聲器輸出的音樂節奏會亂。我第一反應當然是他沒有用定時器中斷,一問果然如此,並且他不知道中斷也不知道定時器。我也就不想多說了,告辭。
之前設計模塊化單片機開發系統的時候,一直覺得“業余愛好者因為開發平台封裝性太強而無法學會使用單片機高級功能”(其實就是專指Timer/Counter,因為總線、ADC等都有庫,唯獨T/C必須用戶自己寫中斷)這個論調站不住腳,甚至還寫了個問卷,結果雖然與預期相符,但我還把原因歸結為問卷能傳播的范圍太小。現在覺得,就算是大四的學生,水平也就這樣。
參觀完這個展覽,我更堅定了要好好寫這份教程的想法。要想學好單片機,良好的開發環境必不可少。
以上為廢話,我們來配置開發環境吧。
1. 概述
我們要安裝以下幾個軟件:
Atmel Studio 7.0(簡稱AS7),是Atmel為自家單片機推出的IDE,基於Visual Studio 2015;
AVRDUDESS,是支持多種下載器的AVR單片機燒寫工具AVRDUDE的GUI版,如果你熟悉命令行,直接用AVRDUDE也行;
Zadig,用於安裝USB驅動,無需安裝,下載即用,只需要用一次;
Serial Port Utility(簡稱SPU),是一個串口通信工具,界面比同類軟件干凈;
串口工具的驅動,取決於你使用的型號,一般只有PL2303和CH340兩種,在網上下載並安裝對應的驅動即可。
2. 下載安裝包
Atmel Studio 7.0的下載地址:聯網安裝包、離線安裝包;
Zadig的下載地址:應用程序;
SPU的下載地址:安裝包。
如果下載太慢,用以下關鍵字搜索:Atmel Studio 7.0.1931。
另外,SPU是收費軟件,可免費試用30天。要么買,要么想辦法繼續用(瘋狂暗示),要么用類似軟件替代。
3. 安裝
AVRDUDE和SPU的安裝按照安裝程序來就行,不講了。
其實AS7也可以不講,但這個軟件比較大,有些人安裝大軟件總是有點慌,所以還是寫一下。
3.1 協議與安裝位置
經過短暫的加載后,安裝程序會顯示這個界面。
第一個勾是同意協議,當然是必須勾的。可以閱讀一下協議,與一般軟件的協議無異,除了開源軟件部分特別長以外。
下面的框是用來指定安裝位置的,自由選擇。
最后一個勾是允許發送匿名信息,無所謂。
3.2 架構
選擇要開發的架構,在本教程中只用到第一個8位AVR,勾選第一個就可以了。
3.3 ASF
選擇是否要安裝ASF,這個在我們的教程中不需要,但有時候可以用來抄代碼。
3.4 系統狀態
然后安裝程序會檢查當前系統狀態是否可以安裝,我碰到過第一個為叉的情況,在新裝系統后集中安裝軟件的時候會出現,重啟就好。如果還不好就再重啟,再不好就是系統的問題了。
3.5 重要提示
這是2018年6月發布的安裝包,自那以后還有新單片機型號推出,相應的頭文件沒有加入這個安裝包,需要安裝完后手動更新。我們用不到那么新的設備,不更新也可以。
3.6 安裝
然后就是漫長的安裝,等等吧。中間會跳出Visual Studio的安裝程序。
3.7 完成
最后,安裝完成,桌面上會有Atmel Studio 7.0的快捷方式。選項是啟動AS7,勾選就立即啟動,不勾選就之后手動啟動,無所謂。
4. 配置
最主要的幾個點我講一下,其他的自己根據習慣來吧。
4.1 加載
打開AS7會出現這個界面,此時軟件正在加載,一會就好了。
4.2 啟動頁面
軟件的界面就是這樣的,可以新建、打開項目,也可以快速打開最近使用的文件。
我們先搗鼓一下設置。在菜單欄→Tools,點擊Options。
4.3 語言
在Environment→International Settings中,選擇語言,可選擇英語或與系統相同的語言,也可以下載語言包。
4.4 主題
在Environment→General中,選擇配色主題,有Blue、Dark和Light三種可選。Dark主題在一些組件中不太美觀。
4.5 快捷鍵
在Environment→Keyboard中配置快捷鍵。
輸入“build”,選擇Build.BuildOnlyProject,選中下面的框,按F5(是按F5鍵不是輸入F和5兩個字符),然后點Assign。用於build當前project。
external, Tools.ExternalCommand1, F6, Assign. 用於后面的“一鍵燒寫”。
comment, VAssistX.SelectionToggleLineComment, Ctrl+/, Assign. 用於注釋與取消注釋。
這些是需要手動配置的快捷鍵中最常用的。
4.6 顯示行號
在Text Editor→All Languages→General中,勾選Line numbers,在編輯器中顯示行號。
4.7 Tab
在Text Editor→GCC→Tabs中,選擇Insert spaces。用空格代替tab是程序員的基本素質,聽說用空格的程序員工資更高哦!
4.8 燒寫工具
在菜單欄→Tools中,點擊External Tools...。
這個窗口用於配置外部工具,我們用它來創建一個“一鍵燒寫”的工具。
在下面的4行中,依次填入以下最外層引號內的內容:
Title: "AVRDUDE"
Command: "C:\Program Files (x86)\AVRDUDESS\avrdude.exe"
Arguments: "-c usbasp -p m324pa -B 0.5 -U flash:w:"$(TargetName).hex":i"
Initial directory: "$(TargetDir)"
注意第二行中的目錄要換成AVRDUDESS的安裝目錄,我這里安裝在了默認位置。
最后,要勾選Use Output window。
4.9 USB驅動
除了AS7中的配置以外,還需要使用Zadig安裝USBasp的USB驅動。在安裝之前,先插入USBasp下載器。
直接打開軟件跳出這個界面,沒有USB設備顯示出來。
在菜單欄→Options中勾選List All Devices。
然后USB設備就都顯示出來了,選擇USBasp。
先確認上面選的是USBasp,千萬不要選錯!!!點擊上下箭頭,選到libusbK,然后Replace Driver。我這里因為已經安裝過了,所以會顯示Reinstall。
安裝成功,環境配置完成。