色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 使用Arduino開發(fā)板時的最常見錯誤

          使用Arduino開發(fā)板時的最常見錯誤

          發(fā)布人:utmel 時間:2023-05-23 來源:工程師 發(fā)布文章

            眾所周知,Arduino開發(fā)板是一款便捷靈活、方便上手的開源電子原型平臺,它構(gòu)建于開放原始碼simple I/O介面版,并且具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境。能通過各種各樣的傳感器來感知環(huán)境,通過控制燈光、馬達和其他的裝置來反饋、影響環(huán)境,因此應(yīng)用比較廣泛。但在使用過程中容易出現(xiàn)一些錯誤,下面一起來看看:

          Arduino開發(fā)板.jpg

          圖1: Arduino開發(fā)板

            1.無法識別Arduino開發(fā)板

            這是指計算機無法識別連接到計算機的Arduino開發(fā)板的情況。發(fā)生這種情況時,該板通常不會列在Arduino IDE的端口列表下,有時會在設(shè)備管理器下標記為USB2.0。

          無法識別Arduino板.jpg

          圖2: 無法識別Arduino板

            解決方案

            當(dāng)使用某些使用CH340g USB 到串行轉(zhuǎn)換器芯片,而不是FTDI (FT232RL) 和標準Arduino開發(fā)板使用的其他芯片的廉價Arduino 克隆時,就會發(fā)生這種情況。標準Arduino開發(fā)板使用的USB轉(zhuǎn)串行芯片驅(qū)動程序始終與Arduino IDE 安裝文件一起打包,因此當(dāng)安裝IDE時,驅(qū)動程序會自動安裝到PC上。為了能夠使用這個基于CH340g USB 到串行轉(zhuǎn)換器的Arduino開發(fā)板,必須下載并安裝該芯片的驅(qū)動程序??梢詮拇随溄酉螺d驅(qū)動程序,安裝它就像單擊下面顯示的安裝界面上的安裝按鈕一樣簡單。

          Arduino開發(fā)板上連接的端口.jpg

          圖3: Arduino開發(fā)板上連接的端口

            完成此操作后,現(xiàn)在應(yīng)該能夠在Arduino IDE上找到板所連接的端口。

            2. 板子不同步

            通常,發(fā)生這種情況時,將無法將代碼(盡管IDE有時會顯示“已上傳”)上傳到Arduino開發(fā)板,并且IDE將顯示錯誤代碼;“ avrdude:stk500_getsync():不同步:resp=0x00 ”。

            解決方案

            不同步:RESP = 0×00是翻譯為“一個通用響應(yīng)的Atmega芯片不工作的Arduino的”。當(dāng)這種情況發(fā)生時,有很多事情可能是錯誤的。以下是可用于清除此錯誤的一些步驟。

           ?、俅_保Arduino(包括屏蔽)上的數(shù)字引腳0和1沒有任何連接。

           ?、诖_保在工具菜單下選擇了正確的通訊端口和板卡。

           ?、郯碅rduino上的重置按鈕幾次并重新上傳代碼。

            ④斷開Arduino與PC的連接并重新連接。

            ⑤重啟Arduino IDE。

            如果其中任何一個不起作用,可能是時候嘗試在PC上使用不同的Arduino開發(fā)板,或者在另一臺PC上使用“有故障”的Arduino開發(fā)板。如果發(fā)現(xiàn)問題出在PC上,請重新安裝Arduino IDE。但是,如果“有故障”的Arduino開發(fā)板是問題的根源,最終的解決方案是使用Arduino固件刷新板。如果上述方法均無效,則可能是需要更換Arduino開發(fā)板了。

            3. 代碼在電源復(fù)位時不啟動

            這指的是Arduino在通電時不運行上傳到它的草圖的情況,并且在大多數(shù)情況下,只是恢復(fù)到與引導(dǎo)加載程序關(guān)聯(lián)的閃爍草圖。

            解決方案

            就像處理的其他問題一樣,有很多因素可能會導(dǎo)致這種情況。

            如果開發(fā)板死機并且什么也不做,應(yīng)該檢查代碼以確保沒有在它出現(xiàn)時向開發(fā)板發(fā)送串行數(shù)據(jù)。當(dāng)Arduino打開時,引導(dǎo)加載程序在最初的幾秒鐘內(nèi)偵聽計算機向它發(fā)送一個新的草圖以上傳到電路板。如果沒有收到新的草圖,不久后,引導(dǎo)加載程序?qū)⒊瑫r并運行上傳到板上的最后一個草圖。如果代碼在前幾分鐘發(fā)送串行數(shù)據(jù),則引導(dǎo)加載程序不會超時,并且上載到板上的最后一個草圖也不會啟動。

            如果在開發(fā)板一啟動就發(fā)送串行數(shù)據(jù)是項目的重要組成部分,可能需要找到一種方法來給它一些延遲,以阻止串行數(shù)據(jù)在Arduino啟動時立即到達。如果進行調(diào)整會影響項目要執(zhí)行的任務(wù),那么可能必須使用外部編程器將草圖上傳到電路板,因為引導(dǎo)加載程序可以被它們繞過。

            如果電路板沒有死機但返回到Arduino閃爍草圖(引腳13上的LED 時不時閃爍),一個簡單的解決方法是使用Arduino引導(dǎo)加載程序刷新開發(fā)板,因為開發(fā)板上的引導(dǎo)加載程序可能已損壞.

            4. 無效的設(shè)備簽名錯誤

            當(dāng)嘗試將代碼上傳到與在Arduino IDE 上的工具>開發(fā)板列表下選擇的開發(fā)板不同的開發(fā)板時,會顯示此錯誤。發(fā)生此錯誤的原因通常是目標板上的設(shè)備簽名與IDE上選擇的板的簽名不同。

          無效的設(shè)備簽名錯誤.jpg

          圖4: 無效的設(shè)備簽名錯誤

            解決方案

            解決此錯誤的方法很簡單,只需確保在Arduino IDE 上選擇正確的開發(fā)板即可。如果這不起作用,則可能需要使用最新版本的Arduino引導(dǎo)加載程序刷新微控制器。

            5. Launch4j 錯誤

            Arduino IDE 在加載之前和加載時有時需要一段時間,如果單擊任何內(nèi)容,它將顯示Launch4J 錯誤,如上所示。Launch4j是一種用于將Java應(yīng)用程序(jar)包裝在Windows本機可執(zhí)行文件中的工具,允許它們用作常規(guī)的Windows程序。

            Arduino IDE本身是用JAVA編寫的,此錯誤是由于Arduino IDE 提供的Java運行時環(huán)境(JRE) 庫的不兼容而發(fā)生的。

          Launch4j錯誤.jpg

          圖5: Launch4j錯誤

            解決方案

            根據(jù)經(jīng)驗,可以通過關(guān)閉PC的藍牙或WiFi連接這樣簡單的方法來清除此錯誤。但是,更完整和永久的解決方案是用最新版本替換Arduino包中的JRE。

            6. 串口已使用

            這可能是最容易解決的錯誤之一。當(dāng)您在串行監(jiān)視器打開時嘗試將代碼上傳到Arduino 時(如果使用最新的IDE 版本,這不再是問題),或者當(dāng)嘗試在Arduino與其他軟件或設(shè)備通信時啟動串行監(jiān)視器時,通常會發(fā)生這種情況通過串口。本質(zhì)上,當(dāng)嘗試將Arduino串行端口同時用于兩個不同的事情時,就會發(fā)生這種情況。

          串口已使用.jpg

          圖6: 串口已使用

            解決方案

            就像IDE建議的那樣,關(guān)閉可能使用com端口的所有其他軟件/工具(包括串行監(jiān)視器/繪圖儀)。如果不確定特定軟件,請拔下Arduino。當(dāng)將其插回時,它應(yīng)該已準備就緒。

            7.Sketch上傳成功但沒有任何反應(yīng)

            此錯誤類似于上面已經(jīng)處理的一些其他錯誤。對于此錯誤,Arduino IDE 會提示代碼已成功上傳,但開發(fā)板什么也不做。

            解決方案

            確保在IDE中選擇的板與目標板相同。這可能是草圖尺寸大于電路板容量的結(jié)果。檢查草圖尺寸并使用上面提到的一些方法來減小尺寸。最后,當(dāng)使用嘈雜的電源時,可能會發(fā)生此錯誤。確保電源足夠穩(wěn)定。

            8. 不滿意鏈接錯誤

            這可能是進入此列表的唯一罕見錯誤。當(dāng)PC上有舊版本的通信庫時會發(fā)生這種情況,很可能來自以前的安裝。

            解決方案

            要解決此錯誤,請在/System/Library/Frameworks/JavaVM.framework/或PC的CLASSPATH或PATH環(huán)境變量的目錄中搜索 comm.jar 或 jcl.jar 。

            9. 草圖太大

            當(dāng)代碼大于該特定Arduino開發(fā)板的閃存時,會發(fā)生此錯誤。例如,Arduino Uno的閃存大小為32Kb,其中2KB已被Arduino引導(dǎo)加載程序使用。如果您應(yīng)該上傳大小大于32Kb的代碼,Arduino將顯示此警告。

          草圖太大.jpg

          圖7: 草圖太大

            解決方案

            如上所述,當(dāng)您的草圖大于您正在使用的特定開發(fā)板的閃存時,就會發(fā)生這種情況,因此,要解決此問題,必須找到減少代碼占用空間量的方法。實現(xiàn)這一目標的一些技巧包括:

           ?、僭诳赡艿那闆r下,使用整數(shù)數(shù)據(jù)類型代替浮點數(shù)。

            ②在聲明變量時,盡可能使用“const”限定符。

           ?、蹆H包含必要的庫。在可能的情況下,使用最重要的庫的輕量級版本。

           ?、芤话愀倪M代碼。開發(fā)有助于使您的代碼更短且通常更輕量級的算法。

           ?、菀粋€更激進的解決方案是將項目轉(zhuǎn)移到另一個板子上,比如 Arduino Mega,與 Uno 相比,它具有更大的閃存。

            10.java.lang.StackOverflowError

            在處理草圖時,Arduino使用一些正則表達式進行處理,有時會在遇到某些與字符串相關(guān)的錯誤(例如缺少引號)時感到困惑。

            解決方案

            通過再次查看代碼,尤其是使用字符串序列的部分,可以解決此錯誤。確保引號完整,正確使用反斜杠等。

            結(jié)語

            以上就是使用Arduino開發(fā)板時的最常見錯誤介紹了。由于Arduino開發(fā)板的種種優(yōu)勢,越來越多的專業(yè)硬件開發(fā)者已經(jīng)或開始使用Arduino來開發(fā)他們的項目、產(chǎn)品;并且越來越多的軟件開發(fā)者使用Arduino進入硬件、物聯(lián)網(wǎng)等開發(fā)領(lǐng)域;連大學(xué)課題,自動化、軟件,甚至藝術(shù)專業(yè),也紛紛開展了Arduino相關(guān)課程。

          關(guān)注公眾號“優(yōu)特美爾商城”,獲取更多電子元器件知識、電路講解、型號資料、電子資訊,歡迎留言討論。

          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: Arduino 開發(fā)板

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉