幽灵机 2023-05-10 18:54 采纳率: 75%
浏览 274
已结题

arduino程序编译出错exit status 1

遇到了这几个错误需要更改那一部分程序才能顺利运行?

C:\Users\99270\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\Wire\Wire.cpp:38:2: error: #error Wire library is not supported on this board
   38 | #error Wire library is not supported on this board
      |  ^~~~~
C:\Users\99270\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\Wire\Wire.cpp:56:30: error: 'SDA' was not declared in this scope
   56 | static int default_sda_pin = SDA;
      |                              ^~~
C:\Users\99270\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\Wire\Wire.cpp:57:30: error: 'SCL' was not declared in this scope; did you mean 'SCK'?
   57 | static int default_scl_pin = SCL;
      |                              ^~~
      |                              SCK

exit status 1

Compilation error: exit status 1

以下是程序:

#include <Wire.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
// 传感器引脚定义
const int pressureSensorPin = A0;
const int temperatureSensorPin = A0;
// WiFi设置
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
// 创建一个Web服务器实例
ESP8266WebServer server(80);
// 读取压力传感器数据
int readPressureSensor() {
  int pressureValue = analogRead(pressureSensorPin);
  return pressureValue;
}
// 读取温度传感器数据
float readTemperatureSensor() {
  int temperatureValue = analogRead(temperatureSensorPin);
  float temperature = (temperatureValue * 3.3 / 1023.0 - 0.5) * 100; // 转换为摄氏度
  return temperature;
}
// 处理网页请求
void handleRoot() {
  String html = "<html><body>";
  html += "<h1>实时呼吸频率和体温监测</h1>";
  html += "<p>呼吸频率: " + String(readPressureSensor()) + "</p>";
  html += "<p>体温: " + String(readTemperatureSensor()) + " &#8451;</p>";
  html += "</body></html>";
  server.send(200, "text/html", html);
}
void setup() {
  // 初始化串口通信
  Serial.begin(115200);
  // 初始化压力传感器和温度传感器引脚
  pinMode(pressureSensorPin, INPUT);
  pinMode(temperatureSensorPin, INPUT);
  // 连接WiFi
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  // 设置网页请求处理函数
  server.on("/", handleRoot);
  // 启动服务器
  server.begin();
  Serial.println("HTTP server started");
}
void loop() {
  // 处理客户端请求
  server.handleClient();
}

  • 写回答

5条回答 默认 最新

  • CF2301_77400554X 2023-05-10 19:10
    关注

    引用chatgpt部分指引作答:
    根据错误提示,问题出在Wire库不支持当前板子并且缺少定义。因此,建议注释掉程序中与Wire库相关的代码段,例如:

    #include <Wire.h>
    ...
    // 注释掉以下代码段
    // const int pressureSensorPin = A0;
    // const int temperatureSensorPin = A0;
    ...
    // 注释掉以下代码段
    // int readPressureSensor() {
    //   int pressureValue = analogRead(pressureSensorPin);
    //   return pressureValue;
    // }
    // float readTemperatureSensor() {
    //   int temperatureValue = analogRead(temperatureSensorPin);
    //   float temperature = (temperatureValue * 3.3 / 1023.0 - 0.5) * 100; // 转换为摄氏度
    //   return temperature;
    // }
    ...
    // 注释掉以下代码段
    // void handleRoot() {
    //   String html = "<html><body>";
    //   html += "<h1>实时呼吸频率和体温监测</h1>";
    //   html += "<p>呼吸频率: " + String(readPressureSensor()) + "</p>";
    //   html += "<p>体温: " + String(readTemperatureSensor()) + " &#8451;</p>";
    //   html += "</body></html>";
    //   server.send(200, "text/html", html);
    // }
    

    然后重新编译程序,看看是否可以正常运行。或者换支持Wire库的板子。
    根据编译器的错误消息,可以看出还有个问题:
    'SDA' was not declared in this scope 和 'SCL' was not declared in this scope 表示SDA和SCL引脚没有定义。您需要确定哪些引脚应该用作SDA和SCL引脚,然后相应地将其定义在程序中。默认情况下,SDA和SCL引脚被定义为GPIO4和GPIO5,您可以尝试使用以下代码定义它们:

    const uint8_t SDA = 4;
    const uint8_t SCL = 5;
    

    请将这些代码放在 setup() 函数的顶部,然后重新编译并上传代码到您的板上。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 已采纳回答 5月17日
  • 创建了问题 5月10日

悬赏问题

  • ¥15 from seleniumwire import webdriver 在抓取http://链接的时候会自动转https://这个怎么解决
  • ¥15 BAT根据上两级文件夹重新命名文件要求BAT
  • ¥15 hive直连数据库模式插入mysql表数据失败(相关搜索:数据库)
  • ¥30 不会,学习,有偿解答
  • ¥15 SQL查询语句报错(检查)
  • ¥15 此表中公式应该怎么写
  • ¥15 求HI-TECH PICC 9.50 PL3安装包
  • ¥15 下载ctorch报错,求解
  • ¥15 如何入门学习c语言,单片机
  • ¥15 idea 编辑语言的选择