arduino内存
arduino内存
内部储存单元由几种不同的介质组成
介质 | 名称 | 特点 | 储存特点 |
---|---|---|---|
FLASH | 闪存(U盘) | 价格低,读写慢 | 数量较大的静态信息。断电后可以保持存储内容。存储程序 |
SRAM | 静态随机存储器 | 价格高,读写快 | 数量较小的动态信息,断电后不可以保持存储内容。储存程序变量 |
EEPROM | 电可擦除可编程只读存储器 | 可擦写可编程 ,读写速度慢 | 只能读取信息,不能储存信息。(例如光盘)用于需要断电保持的程序变量 |
在EEPROM中读取和储存数据
对于arduino uno其有1024个字节(1kb)
可以储存1024个0~255十进制数
内存优化
SRAM资源远远小于FLASH资源
优化SRAM
串口监视器输出时用
用SRAM储存
1 | Serial. println("Taichi-Maker"); |
用FLASH储存
1 | Serial. println (F("Taichi-Maker")); |
建立常量
用SRAM储存静态信息会对使用空间进行浪费
此时我们可以用FLASH分担SRAM的压力
将常量储存在FLASH中
1 | const int a = 125;//储存在SRAM中 |
局部变量和全局变量
我们可以从下列代码中来体会全局变量和局部变量的特点
1 | int globalVarl;//全局变量1 |
内存 | 特点 |
---|---|
SRAM | 共享的局部变量 |
SRAM | 独享的全局变量 |
要更好地优化空间我们就需要尽量多使用==局部变量==代替==全局变量==
用bool型的变量代替int型的变量做逻辑判断
用整形占用两个字节
1 | int a; //变量a用于逻辑判断 |
用bool占用一个字节
1 | bool a;//变量a用于逻辑判断 |
尽量使用占用内存少的数据类型
具体的数据类型及其相关信息可以参考这个网站Arduino常用数据类型简介 – 太极创客 (taichi-maker.com)
(8位微控制器)
优化FLASH
即优化我们的arduino程序
删除无用代码
- 无用库
- 无用变量
- 无用函数
- 无用代码
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小江的博客!