ZBLOG

#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(Serial, true);; // 定义LED...

根据您提供的代码和您的要求,我将对代码进行一些检查和必要的修改,以确保其运行良好。以下是经过调整后的代码:

  1. #include "BluetoothSerial.h"
  2. // 检查蓝牙是否启用
  3. #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
  4. #error Bluetooth is not enabled! Please run `make menuconfig` to enable it
  5. #endif
  6. BluetoothSerial SerialBT(Serial, true); // 初始化蓝牙串口对象
  7. // 定义LED引脚
  8. const int ledPin1 = 2; // ESP32的板载LED通常连接到GPIO 2
  9. const int ledPin2 = 3; // 可以自定义其他引脚
  10. void setup() {
  11. // 初始化串口通信
  12. Serial.begin(115200);
  13. // 初始化蓝牙
  14. SerialBT.begin("COME-CAR_001"); // 蓝牙设备名称
  15. Serial.println("蓝牙已启动,等待连接...");
  16. // 初始化LED引脚
  17. pinMode(ledPin1, OUTPUT);
  18. digitalWrite(ledPin1, LOW); // 初始状态关闭LED
  19. pinMode(ledPin2, OUTPUT);
  20. digitalWrite(ledPin2, LOW); // 初始状态关闭LED
  21. }
  22. void loop() {
  23. // 检查是否有蓝牙数据可读
  24. if (SerialBT.available()) {
  25. char command = SerialBT.read();
  26. Serial.write(command); // 将接收到的命令发送到串口监视器
  27. // 根据接收到的命令控制LED
  28. switch (command) {
  29. case '0':
  30. digitalWrite(ledPin1, HIGH); // 打开第一个LED
  31. digitalWrite(ledPin2, LOW); // 确保第二个LED关闭
  32. SerialBT.println("电动车已打开");
  33. break;
  34. case '1':
  35. digitalWrite(ledPin1, LOW);
  36. digitalWrite(ledPin2, HIGH); // 打开第二个LED
  37. SerialBT.println("电动车已打开,车灯已打开");
  38. break;
  39. case '2':
  40. digitalWrite(ledPin1, LOW); // 确保所有LED关闭
  41. digitalWrite(ledPin2, LOW);
  42. SerialBT.println("电动车已关闭");
  43. break;
  44. default:
  45. SerialBT.println("无效命令"); // 添加默认情况处理无效命令的反馈。
  46. }
  47. delay(100); // 加一个短暂延迟,避免过于频繁地读取数据。
  48. }
  49. }

修改与建议:

  1. 格式化与排版:保持代码整洁和一致性,例如注释、空行等,可以提高可读性。

  2. 命令处理:确保了字符比较使用的是单引号,并添加了每个 casebreak 防止意外的fall-through(在C/C++中,当没有 break 时,程序会继续执行下一个 case)。

  3. 默认情况:增加了对无效命令的反馈,使用户能够得到更清晰的信息。

  4. 延迟:保持一定的延迟可以防止因高频率读取而导致的问题。

该代码片段应当能够实现基本功能。如果有特定问题或需要进一步优化,请告知!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22704

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?