您的代码有一些小错误和需要改进的地方。下面是经过修正和优化的版本:
#include "BluetoothSerial.h"
// 检查蓝牙是否启用
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to enable it
#endif
 
BluetoothSerial SerialBT;
 
// 定义LED引脚
const int ledPin1 = 2;  // ESP32的板载LED通常连接到GPIO 2
const int ledPin2 = 3;  // 可以自定义其他引脚
 
void setup() {
  // 初始化串口通信
  Serial.begin(115200);
  
  // 初始化蓝牙
  SerialBT.begin("COME-CAR_001"); // 蓝牙设备名称
  Serial.println("蓝牙已启动,等待连接...");
 
  // 初始化LED引脚
  pinMode(ledPin1, OUTPUT);
  digitalWrite(ledPin1, LOW);   // 初始状态关闭LED
  pinMode(ledPin2, OUTPUT);
  digitalWrite(ledPin2, LOW);   // 初始状态关闭LED
}
 
void loop() {
  // 检查是否有蓝牙数据可读
  if (SerialBT.available()) {
    char command = SerialBT.read();
    Serial.write(command);   // 将接收到的命令发送到串口监视器
    // 根据接收到的命令控制LED
    switch (command) {        // 修复了switch语法错误并正确使用变量名 command
    
      case '0':               // 注意这里的字符比较,需要用单引号包围数字字符(如'0')
        digitalWrite(ledPin1, HIGH);   // 打开第一个LED
        digitalWrite(ledPin2, LOW);     // 确保第二个LED关闭
        SerialBT.println("电动车已打开");
        break;                  // 添加break以防止fall-through
        
      case '1':
        digitalWrite(ledPin1, LOW);
        digitalWrite(ledPin2, HIGH);   // 打开第二个LED
        SerialBT.println("电动车已打开,车灯已打开");
        break;
      case '2':
        digitalWrite(ledPin1, LOW);    // 确保所有LED关闭 
        digitalWrite(ledPin2, LOW);
        SerialBT.println("电动车已关闭");
        break;
      default:
        SerialBT.println("无效命令");   // 添加默认情况处理无效命令的反馈。
    }
    
    delay(100);                    // 可以加一个短暂延迟,避免过于频繁地读取数据。
  }
}
更改说明:
- switch语句修正:原来的代码中- switch (cmd):是错误的,应为- switch (command)并且- case后面的条件需要与读取到的字符进行比较。
- 字符比较:在 - case中比较字符时,用单引号- '0',- '1', 和- '2'。
- 添加 - break:确保在每个 case 完成后退出 switch,防止继续执行下一个 case 的代码(fall-through)。
- 添加默认情况处理:对输入其他不符合要求的命令给予反馈。 
- 延迟:增加一段延迟以避免反复读取导致的数据丢失或异常行为。 
这些更改使代码更加健壮和易于维护。如果还有其他问题或需求,请随时告知!
内容由零声教学AI助手提供,问题来源于学员提问


 
                             
         
        
 
         
         
         
         
         
         
         
        
 
                 
                 
                 
                 
                 
                 
                 
                