題:
如何擦除Arduino Uno的內存?
Peter Turner
2014-02-27 00:32:43 UTC
view on stackexchange narkive permalink

我只是和小兒子一起學習Arduino,而令我驚訝的是,當我將USB線重新插入Arduino時,程序仍在運行,我心想:“這是一件好事,但我沒有只是炸毀任何東西。”

那麼,人們每天用這些東西稱呼它的正常方式是什麼?您通常會加載基本內容嗎,不做任何素描或只是拔掉所有東西?

您的意思是“當我將USB線重新插入Arduino時程序仍在運行”,您觀察到了什麼行為以及期望得到什麼行為? Arduino是否連接了任何東西?
@jippie是的,我插入了一堆LED,它們都亮了。由於某種原因,我認為程序已加載到內存中,並且會在重新啟動後消失,但是由於該原因不存在...。
程序被加載到閃存中,而不是RAM中,因此即使在掉電後它們也被保留。
六 答案:
Manishearth
2014-02-27 00:37:12 UTC
view on stackexchange narkive permalink

啟動時,Arduino將運行最後放置的程序。解決方案:如果您不希望它運行,請不要打開它。

開箱即用時,Arduino通常運行Blink程序。因此,只要您想“重置”它,就可以加載並調用它。

或者使用帶有睡眠命令的循環程序。

如果您一直在搞亂通過icsp引腳使用USB引導程序,這還不夠,您需要重新安裝引導程序。但是,如果您一直是通過USB或直接使用編程器來上傳程序,則上傳Blink或其他虛擬程序來重置它沒有問題。

是否可以在沒有任何電壓端子插入的情況下運行自毀程序?
@PeterTurner何時沒電呢?不會。但是您可以添加一個濫用引腳的程序,如果您將其置於某些損壞的情況下,可以調用該程序(除非連接了引腳,否則不會造成太大的損失)
asheeshr
2014-03-02 08:38:25 UTC
view on stackexchange narkive permalink

如果安全是一個主要問題,那麼您應該幾乎每天都將一個stop *草圖加載到板上,然後再調用它。例如,當您的電路板半永久性地成為大型系統的一部分時,這將是一個好主意。您可以通過以下方式進行操作:

  • 上傳在文件 kbd>-> 示例 kbd>-> 基本 kbd中找到的最小裸露草圖>在
  • 中上傳具有較大循環延遲的草圖。
  #include <limits.h>void setup(){} void loop(){delay(ULONG_MAX);}  
  void setup(){exit(0);} void loop(){}  

* Stop只是一種比喻。董事會並沒有真正停止運行。 sub>

您可以通過在setup()或loop()中調用exit()獲得類似(且更永久)的效果嗎?
@PeterR.Bloomfield不敢相信我忘記了這一點!
為什麼要麻煩出口或延誤呢?只需設置`void setup(){} void loop(){}`-在任何情況下,處理器內部都是在“無用”。
linhartr22
2017-06-08 22:42:12 UTC
view on stackexchange narkive permalink

發生這種情況時,我最大的擔心是我通常為新項目連接Arduino,然後插入USB以便首次下載新草圖。我擔心,不知道以前的程序將要嘗試什麼,並連接到完全不同的硬件。將我的一個Arduino放回垃圾箱。不過,這可能只是時間問題。

Nick Gammon
2015-08-19 02:59:16 UTC
view on stackexchange narkive permalink

可能會出錯的主要事情是,如果您將Arduino放在旁邊幾週,而忘記在其上加載了什麼草圖(代碼),然後又重新開始工作,插入硬件(如開關, LED或電機),並使其意外地點亮/亮起,因為先前的代碼指向了它所連接的引腳。


解決方案1.首先加載新代碼。

一種簡單而安全的技術是在插入任何硬件之前之前,加載您正在使用的新代碼。現在您知道該代碼的用途,其使用的引腳以及然後插入之後再裝上硬件(最好先拔掉Arduino,將其關閉)。

然後,當您重新連接電源時,它將運行您上傳的草圖,您的硬件已連接,並且一切都應該很好。草圖。

您可以上傳以下簡短草圖:

  int main(){}  

“什麼都不做”。所有引腳都將保留為輸入,因此您可以安全地連接硬件,然後開始對新項目進行編碼。


安全第一

一個好的規則是不要插入或在接通電源的情況下拔下硬件(例如,LED,開關,電動機)。如果您分心並插入錯誤的板上插座,則可能會立即損壞所連接的東西或Arduino,或同時損壞兩者。

在關閉電源的情況下,您可以在最後一分鐘進行操作。檢查所有東西都連接到正確的地方,極性是否正確,依此類推。

還請確保您身上沒有靜電,尤其是在穿著跳線之類的東西時。

個人而言,在到達Arduino之前,我總是伸出手並觸摸附近的一些金屬零件以“接地”自己。一個例子是PC,耳機插座之類的金屬外殼。

如果在將電源連接到Arduino之後(例如通過USB電纜)沒有立即看到電源LED亮起,請立即斷開電源!您可能已經做空了某些事情,為此花費的時間越少越好。

nipi
2015-08-18 17:41:12 UTC
view on stackexchange narkive permalink

如果arduino板連接到任何其他設備,則拔下所有插頭,然後使用usb電纜將arduino與計算機連接,然後嘗試上傳新草圖,希望對您有所幫助。

歡迎使用Arduino SE!是否有任何理由比其他提供的答案更好?謝謝!
Victor Peters
2017-01-11 04:06:09 UTC
view on stackexchange narkive permalink

在Arduino IDE中,轉到示例,選擇Eeprom,選擇eeprom clear,然後上傳草圖。

當第13針上的LED點亮時,就完成了。

>

NB。這可能需要一些時間,具體取決於Arduino中EEPROM的大小。

那有什麼意義呢?運行的東西不會碰到I / O(但每次上電都會清除EEPROM)?
您實際嘗試過嗎?引腳13似乎未設置為輸出(Arduino IDE 1.6.5)


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...