Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 永久更改char变量_Arduino - Fatal编程技术网

Arduino 永久更改char变量

Arduino 永久更改char变量,arduino,Arduino,我正在为一个项目编写一些代码,在这个项目中,我有一个GSM模块与Arduino接口,用于在触发传感器时传递某些通知,并通过SMS接收命令。其中一个命令是通过SMS设置“呼出”号码。也就是说,如果我向GSM模块发送“Set”一词,则接收信息的号码将成为触发传感器时GSM模块将呼叫的新号码 我必须在代码中初始化默认电话号码: char ph_number[]="+35387914xxxx"; 然后在我的程序中,我有一些代码来检查任何包含“Set”命令的SMS,如果是,则将ph_number=设置为

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

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

char ph_number[]="+35387914xxxx";
然后在我的程序中,我有一些代码来检查任何包含“Set”命令的SMS,如果是,则将ph_number=设置为发送者号码


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

您可以将其存储在闪存或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);
   }
}
#包括
int a=0;
int值;
无效设置()
{
a=EEPROM.read(0);//从内存中的点0(第一点)读取
}
void循环()
{
数值=模拟读数(A0);
如果(值!=a){
a=数值;
EEPROM写入(0,a);
}
}

保存字符时,在保存之前首先将其转换为十进制等效字符,之后必须再次转换。还必须记住,内存中的每个点只能存储1字节的数据,最大值为255,EEPROM的读/写次数有限——出厂时规定的最大读/写次数为100000,但可能会更高。

简单地问一下,这是很多不必要的文字:
Arduino上是否有永久存储器,如果有,我如何使用它?
看不支持从草图中写入Arduino上的FLASH,所以FLASH并不是一个真正的选项。