解決 ARDUINO 記憶體不足不用怕,一個函數打天下

解決 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.移除不用的函數庫


發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *