永久更改char变量

时间:2013-03-26 12:35:51

标签: arduino

我正在为一个项目编写一些代码,其中我有一个与Arduino接口的GSM模块,用于在触发传感器时传达某些通知并通过SMS接收命令。一个这样的命令是通过SMS设置“呼出”号码。 IE如果我将“Set”字样发送到GSM模块,则收到消息的号码将成为GSM模块在触发传感器时呼出的新号码。

我必须在代码中初始化默认电话号码:

char ph_number[]="+35387914xxxx";

然后在我的程序中,我有一些代码来检查包含'Set'命令的任何SMS',如果是,则将ph_number =设置为发件人编号。

我需要永久保存该新号码以成为默认的呼出号码,即使Arduino被重置,直到收到新的Set命令为止。有没有办法做到这一点?它甚至可能吗?

2 个答案:

答案 0 :(得分:2)

您可以将其存储在FLASH或EEPROM中的特殊位置,并在启动时从那里读取。

答案 1 :(得分:1)

您可以使用Arduino EEPROM library读/写EEPROM。这允许您一次访问内存中的一个点,示例草图将是:

#include <EEPROM.h>

int a = 0;
int value;

void setup()
{
  a = EEPROM.read(0); //reads from point 0 in the memory (the first point)
}

void loop()
{
   value = analogRead(A0);
   if(value != a){
       a = value;
       EEPROM.write(0, a);
   }
}

保存字符时,首先将它们转换为十进制等值,然后保存,之后必须再次转换。同样重要的是要记住,存储器中的每个点只能存储1个字节的数据,最大值为255,EEPROM的读/写次数有限 - 出厂时指定的最大值为100000但可能更高。

相关问题