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