1

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

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

char ph_number[]="+35387914xxxx";

然后在我的程序中,我有一些代码来检查包含“设置”命令的任何短信,如果是,请将 ph_number = 设置为发件人号码。

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

4

2 回答 2

2

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

于 2013-03-26T12:37:39.597 回答
1

您可以使用Arduino EEPROM 库读取/写入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,但它可能会更高。

于 2013-04-10T22:22:59.180 回答