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在编写SMS时重新启动_Sms_Arduino_Gsm - Fatal编程技术网

Arduino在编写SMS时重新启动

Arduino在编写SMS时重新启动,sms,arduino,gsm,Sms,Arduino,Gsm,我的Arduino(Arduino Duemilanove克隆)在我尝试响应发送到机器的短信时重新启动。这可能是内存问题(它只有2048字节的RAM) 对于变量,我不使用那么多。仅发送工作正常。GSM库占用的字节略少于1000字节。您用于调试的串行端口(假设您使用该端口),另外大约100个。因此,我猜您的内存不足,导致调试控制台出现垃圾或重新启动Arduino 您可以根据我在Arduino烹饪书中找到的信息,使用以下代码检查内存: int memory_free() { int free

我的Arduino(Arduino Duemilanove克隆)在我尝试响应发送到机器的短信时重新启动。这可能是内存问题(它只有2048字节的RAM)


对于变量,我不使用那么多。仅发送工作正常。

GSM库占用的字节略少于1000字节。您用于调试的串行端口(假设您使用该端口),另外大约100个。因此,我猜您的内存不足,导致调试控制台出现垃圾或重新启动Arduino

您可以根据我在Arduino烹饪书中找到的信息,使用以下代码检查内存:

int memory_free()
{
    int free_value;
    if ((int)__brkval == 0)
        free_value = ((int)&free_value) - ((int)&__bss_end);
    else
        free_value = ((int)&free_value) - ((int)__brkval);
    return free_value;
}
根据我的经验,如果返回的字节数少于150字节,您就有麻烦了


如果SMS的缓冲区大小最大为160个字符,请将其减小到最小。一旦一切正常,将日志记录切换到调试控制台(保存超过100字节)并增加SMS大小。实际上,您可以通过发送SMS(包括内存状态)来进行调试。

如果您的Arduino和GSM调制解调器位于同一电源上,则可以尝试使用更好的电源并重复测试。您也可以分离电源-一个用于Arduino,另一个用于GSM调制解调器,然后重复测试。如果GSM调制解调器靠近Arduino,您可以尝试将其移远一点。如果在所有这些措施之后仍然发生重置,则表明您有软件问题。

如果电源和内存正常,则由于程序中的错误,您的Arduino正在重新启动。寻找散乱的指针。

在只发送或只接收的程序中工作正常,如果是电源问题,则无法工作。我不想拔掉GSM屏蔽,让caThis看起来就是它,GSM库内存不足