解決 ARDUINO 記憶體不足不用怕,一個函數打天下
解決 ARDUINO 記憶體不足不用怕,一個函數打天下
資料來源: https://vmaker.tw/archives/13258
01.檢查剩餘記憶體容量:
//如果顯示出來的數字接近 0 ,那就代表程式可能有記憶體不足的問題,但發現記憶體不足也不必驚慌,一下我們提供兩種方法,讓你的 Arduino 程式再度活過來。 int freeRam () { extern int __heap_start, *__brkval; int v; return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); } Serial.println(freeRam());
02.F()節省記憶體
//原本如果要序列傳輸 “This string will be stored in flash memory” 這段文字的話,一般來說都會這樣寫。 Serial.println("This string will be stored in flash memory"); //這將佔用 42 位元組的記憶體空間,所以如果有 50 個這種長度的文字同時在記憶體中,Arduino 就沒有記憶體可以做其他事情了。但其實只要在文字外加上一個神奇的 F 函數呼叫,像下面這樣, Serial.println(F("This string will be stored in flash memory")); //那文字就不再佔用 Arduino 的記憶體,瞬間省了你 42 位元組的空間。可別小看這一點點小節省,累積下來他們也可能非常驚人。
03.移除不用的函數庫