请问在Serial.println()里用F(),F()是什么意思哦?
在http://arduino.cc/en/Serial/Print
You can pass flash-memory based strings to Serial.print() by wrapping them with F(). For example :
Serial.print(F(“Hello World”))
这句话里说的F()函数是什么意思呢?用和不用有什么区别? 如果加上 F(), 當中的 string 會放到 flash memory 中, 而不會佔用 SRAM.
因為 arduino 中的 SRAM 非常珍貴, 相對而言 flash memory 比較充足.
由於該 string 在封行中是不會改變的, 放到 flash memory 中可以節省 SRAM 的使用.
對 flash memory 的存取可能會比 SRAM 略為慢一點, 而且 flash memory 中的資料在程式執行時是不能更改的, 但對於一些比較長的 string constant, 一般都建議放到 flash memory 中. 如果你想看到分別, 可以在 compile 時, 看看資訊中dynamic memory的使用, 就會更加清楚.
在加上 F() 後,可以節省一定數量的 dynamic memory 使用量.
Super169 发表于 2014-12-11 17:02 static/image/common/back.gif
如果你想看到分別, 可以在 compile 時, 看看資訊中dynamic memory的使用, 就會更加清楚.
在加上 F() 後 ...
原来如此,谢谢啊~
页:
[1]