Arduino IDE與驅(qū)動程序安裝測試圖文教程(三)常見問題及解決方法

Arduino IDE與驅(qū)動程序安裝成功后,為了表明Arduino處于工作狀態(tài),下一步就需要通過程序讓開發(fā)板上的LED燈閃爍。
我們先簡單認(rèn)識看一下Arduino的這個編譯器,畢竟以后可是要經(jīng)常和它打交道的。


界面介紹.png

測試操作步驟:
1、將UNO PLUS開發(fā)板的BOOT模式設(shè)置到On檔,VCC電壓設(shè)置為5V(Nano直接連接到電腦上)。
2、 通過USB線將開發(fā)板接入電腦。若模塊電源指示燈點亮(Nano為黃色)說明工作正常。
3、依次點擊 文件 ->示例 -> 01.Basics -> Blink 即可打開示例程序。
(示例中保存有各種示例程序,各位寫程序的時候可以參考示例程序)

Blink.png

此時會看到開發(fā)板上的LED燈(紅色)每一秒閃爍一次,將代碼修改為2000時,則每兩秒閃爍一次,說明Arduino工作一切正常。
Blink2.png

但是在這過程中會出現(xiàn)各種問題,主要有以下兩大類:

第一大類:當(dāng)你從avrdude得到消息,就意味著板子和計算機的通信出了問題,主要有以下三種可能:

問題一: 處理器選擇錯誤,上傳出錯

如果上傳時出現(xiàn)如下圖錯誤,表示你的處理器選擇錯誤,Arduino1.8.9版本默認(rèn)的處理器是ATmega328P,你只需要將其改為ATmega328P(Old Bootloader)即可。老版本的Arduino(如Arduino1.8.4)處理器不用修改,默認(rèn)的即可使用。
你可以復(fù)制錯誤信息上網(wǎng)檢索,也可以查看http://www.arduino.cc/en/Guide/Troubleshooting#upload 獲取建議。

處理器錯誤.png

正確操作為:


正確操作.png
問題二: 開發(fā)板選擇錯誤,上傳出錯

如果上傳時出現(xiàn)如下圖錯誤,表示你的開發(fā)板選擇錯誤,一定要看好你手中開發(fā)板的型號(我們購買的是Nano),在工具中選擇對應(yīng)的開發(fā)板。

開發(fā)板錯誤.png

正確操作為:


正確操作.png
問題三: 端口選擇錯誤,上傳出錯

這里的端口號COM4會根據(jù)不同電腦而不同,需要通過設(shè)備管理器來查看具體的串口號。
如果你使用的是Mac,尋找以/dev/tty.usbmodem開始的端口;在Windows的計算機上,該端口是一個COM的端口;在Linux中,端口以/dev/ttyAMC開始。下圖是Windows下的端口選擇。

正確操作.png

如果你不知道如何選擇端口,請繼續(xù)往下看:

(1) 如果你不確定端口是哪一個,你可以在Arduino板未插的時候查看一下列表,然后插上板子之后再看一下,如果有一個以前沒有的現(xiàn)在出現(xiàn)了,那可能就是你應(yīng)該選擇的。
(2)如果你選擇了不正確的端口,它不會弄壞任何東西,所以如果你不確定就選擇一個端口,然后單擊上傳按鈕,如果得到一個錯誤信息,就嘗試選擇列表中的下一個端口,并繼續(xù)嘗試列表下面的項,直到找到你的Arduino板所在的端口。

如果這些選擇沒問題,查看板子是否連接到計算機。

  1. 如果這些選擇都沒問題的話,還是提示錯誤信息,下一步需要檢查硬件連接是否正確。最簡單的嘗試就是從Arduino板拔出USB連接線,然后再插回去。
  2. 如果還有問題,請嘗試拔出Arduino板,然后退出IDE,重新啟動并連接,看看你能否上傳一個新的程序。
  3. 如果你已經(jīng)做了一切,仍然無法上傳程序到Arduino板,再試一次安裝Arduino IDE 和驅(qū)動程序。

第二大類:來自程序內(nèi)部的錯誤

如果你看到信息說:“Expected intializer before 'void' ”或者“expected ‘;‘...”,那么可能是你在程序中打錯了字。仔細(xì)檢查你的的代碼,并確保它與你應(yīng)該輸入的吻合。

如果都操作正確的話,點擊上傳,編譯完成后會提示上傳成功,如下圖。
上傳成功.png

然后你的LED燈就會每一秒閃爍一次,你也可以嘗試修改閃爍時長,進(jìn)一步驗證Arduino工作正常。

*補充:1.關(guān)于Bootloader

什么是 Bootloader

在arduino的板子上,作為核心的avr單片機往往都會燒錄一個bootloader,這個叫做bootloader的東東其實是arduino研發(fā)團隊針對arduino板子開發(fā)的一小段代碼,借助于這段代碼,我們可以在不用外部燒錄工具的情況下來把我們自己的代碼下載到AVR單片機中。為了使一些朋友更容易理解,不妨打個比方,bootloader類似于我們電腦中的windows操作系統(tǒng),而我們的代碼則類似于運行于windows上的各種程序。

一般情況下微處理器寫入程序時都通過專門的編程器進(jìn)行燒寫,但是也可以通過在MCU中預(yù)先寫入一些程序來實現(xiàn)某些基本功能,這些預(yù)先寫入的程序代碼就是bootloader。這樣每次復(fù)位時MCU就不是從程序存儲器起始位置開始讀取命令,而是先加載bootloader,實現(xiàn)一些設(shè)置和功能,再開始執(zhí)行代碼。

arduino通過預(yù)先寫入的bootloader,每次通過串口給arduino板下載程序時,首先會令arduino板復(fù)位一次,這樣就先進(jìn)入了bootloader,接著向arduino板發(fā)送特定的下載指令,bootloader識別到這些指令后就會緊接著開始接收剩下的新的程序代碼寫入到內(nèi)部flash中,如果沒有進(jìn)行下載,bootloader沒有識別到下載指令,那么它就會跳轉(zhuǎn)到程序區(qū)正常工作。

一般而言,arduino板的賣家都會把每塊板的bootloader都燒好后再出售,這樣買家直接收到板后就能夠把自己在arduino IDE中編寫的程序借助PC的USB口來下載到arduino單片機內(nèi)。

更多關(guān)于BootLoader的內(nèi)容請參照360百科https://baike.so.com/doc/5405271-5643045.html

簡而言之,Arduino上的bootloader就是能讓你用一根usb線就可以愉快下載程序的原因所在。

為什么要自己燒寫bootloader

既然bootloader已經(jīng)這么寫好在Arduino板里了,那為什么我們還要自己燒寫呢,這不是我們喜歡折騰,而是因為:

自己搭建一塊Arduino板,如果想自己做一塊arduino板或者想將其嵌入到PCB項目里,而新出廠的單片機里是沒有bootloader的,這時就需要自己燒寫。

某些罕見情況下舊的bootloader會導(dǎo)致一些bug,比如遇到過舊版本bootloader無法使用watchdog的問題,這個時候?qū)懭胄掳姹綽ootloader可能會解決問題。

關(guān)于這部分感興趣的同學(xué)可查看具體的內(nèi)容,網(wǎng)址如下https://blog.csdn.net/u013810296/article/details/54975831

2.專有名詞解釋

集成開發(fā)環(huán)境(IDE)是用來以特定的語言編寫計算機編程環(huán)境,這個應(yīng)用程序可以創(chuàng)建和編輯代碼,以及運行代碼。許多IDE還提供了能幫助程序員調(diào)試他們的程序的功能,換句話說,就是檢查他們程序的錯誤。

驅(qū)動程序是一種軟件,它允許你的計算機與外部設(shè)備通信,如打印機和鍵盤。

LED或稱為發(fā)光二極管,是一個電流流過它時會被點亮的電子元器件。二極管只允許電流沿一個方向流過,所以只有當(dāng)較長的腳被連接到電源的正極,而較短的腳被連接到負(fù)極的時候,一個LED才會被點亮;如果他們被接反,LED就不會亮了。

代碼編譯是一個接收由人編寫的代碼,并把它轉(zhuǎn)換成為可被機器理解的指令的過程。

Arduino的程序通常被稱為草圖,就像速寫畫家的作品。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容