avrdude:stk500_loadaddr 计算机上的 stk500_loadaddr 协议错误 Arduino uno GSM 模块 SIM800L EVB

avrdude: stk500_loadaddr protocol error Arduino uno GSM module SIM800L EVB on mac computer

我在 mac 计算机上设置了 arduino IDE 并使用 Arduino uno 和 GSM 模块 SIM800L EVB

我使用以下代码块通过此模块发送短信。

#include <GSM.h>

#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSM_SMS sms;

// char array of the telephone number to send SMS
// change the number 1-212-555-1212 to a number
// you have access to
char remoteNumber[20]= "12125551212";  

// char array of the message
char txtMsg[200]="Test";

void setup()
{
  // initialize serial communications
  Serial.begin(9600);

  Serial.println("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }
  Serial.println("GSM initialized");
  sendSMS();
}

void loop()
{
// nothing to see here
}

void sendSMS(){

  Serial.print("Message to mobile number: ");
  Serial.println(remoteNumber);

  // sms text
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);

  // send the message
  sms.beginSMS(remoteNumber);
  sms.print(txtMsg);
  sms.endSMS(); 
  Serial.println("\nCOMPLETE!\n");  
}

当我尝试此操作时,控制台出现以下错误。考虑这是我第一次使用这项技术。并且不确定我是否必须设置任何驱动程序才能使用 GSM 模块。

avrdude: stk500_loadaddr(): (a) protocol error, expect=0x14, resp=0x00

avrdude: stk500_paged_load(): (a) protocol error, expect=0x14, resp=0x00
avrdude: stk500_cmd(): programmer is out of sync
avr_read(): error reading address 0x0000
    read operation not supported for memory "flash"
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x00

错误是什么?修复它的步骤是什么?

你有没有设法将任何草图上传到 arduino。首先尝试上传眨眼示例草图。

如果失败,则说明连接有问题或配置错误。如果您使用的是标准 Arduino IDE,则有一个菜单项可以 select 正确的电路板。如果你选错了板,那么你会收到很多有线消息,就像这里的那样。

avrdude: stk500_loadaddr(): (a) protocol error, expect=0x14, resp=0x00

所以首先检查你有正确的板。

如果没问题,但您仍然无法加载,那么您可能已经损坏了引导加载程序。 arduino 内存的一个特殊位是为上传草图的程序保留的。其他程序可能会覆盖此代码,从而使芯片变砖。它可以重新加载,但它很棘手。

另一种可能是模块干扰了程序员。 Arduino 使用引脚 0 和 1 来上传草图和串行通信,使用这些引脚连接模块可能会导致冲突。在 QUICKSTART SIM800 (SIM800L) WITH ARDUINO 中,引脚 7 和 8 用于与 GSM 模块进行串行通信。