Arduino 的IDE默认都是将一些字符串,数组存储在RAM中,而RAM虽然速度快但是328p只有区区2K,很多时候完全不够用。类似字符数组,还有自定义的LCD文字,这类对存取速度没有太高要求的数据,我们可以储存在328p的FLASH中,FLASH有32K,足够应付大多情况
要使用FLASH首先需要包括头文件:
#include
之后便可以使用PROGMEM来定义
比如有一段定义12864液晶字符的语句
//显示龙字样
const unsigned char F14x16[] = {
0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0xF0,0x12,0x1C,0xD0,0x10,0x10,0x10,
0x40,0x20,0x10,0x0C,0x03,0x10,0x08,0x3F,0x42,0x41,0x40,0x40,0x40,0x70//龙
};
将这一段数组存入到FLASH只需要在函数后加入PROGMEM
const unsigned char F14x16[] PROGMEM= {
0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0xF0,0x12,0x1C,0xD0,0x10,0x10,0x10,
0x40,0x20,0x10,0x0C,0x03,0x10,0x08,0x3F,0x42,0x41,0x40,0x40,0x40,0x70//龙
};
即可节约出宝贵的RAM空间
要使用FLASH首先需要包括头文件:
#include
之后便可以使用PROGMEM来定义
比如有一段定义12864液晶字符的语句
//显示龙字样
const unsigned char F14x16[] = {
};
将这一段数组存入到FLASH只需要在函数后加入PROGMEM
const unsigned char F14x16[] PROGMEM= {
};
即可节约出宝贵的RAM空间
![Arduino:将数据存入片内FLASH解决RAM不足 Arduino:将数据存入片内FLASH解决RAM不足](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)