重载write(int)的调用不明确

用户名

下面的代码在没有功能spinLeft()的情况下可以正常工作(我从goForward复制并修改了该函数)。当我尝试添加该功能(稍后使用)时,出现了以上错误。但是我看不到我在哪里做过的事情。添加其他函数如何产生此错误?

错误消息的其余部分显示:

Roomba4operants.ino: In function 'void spinLeft()':
Roomba4operants:57: error: call of overloaded 'write(int)' is ambiguous
/Users/royclymer/Desktop/Arduino.app/Contents/Resources/Java/libraries/SoftwareSerial/SoftwareSerial.h:92: note: candidates are: virtual size_t SoftwareSerial::write(uint8_t)
/Users/royclymer/Desktop/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:49: note:                 size_t Print::write(const char*)

码:

#include <SoftwareSerial.h>

int rxPin = 3;
int txPin = 6;
int ledPin = 13;

SoftwareSerial Roomba(rxPin,txPin);

void setup() {
  pinMode(ledPin, OUTPUT);   // sets the pins as output
  Serial.begin(115200);
  Roomba.begin(115200);  
  digitalWrite(ledPin, HIGH); // say we're alive
  Serial.println ("Sending start command...");
  delay (1000);
   // set up ROI to receive commands  
  Roomba.write(128);  // START
  delay(150);
  Serial.println ("Sending Safe Mode command...");
  delay (1000);
  Roomba.write(131);  // SAFE
  delay(150);
  digitalWrite(ledPin, LOW);  // say we've finished setup
  Serial.println ("Ready to go!");
  delay (5000);
}

void loop() {
  digitalWrite(ledPin, HIGH); // say we're starting loop
  Serial.println ("Go Forward");
  goForward();
  delay (1000);
  Serial.println ("Halt!");
  halt();
  Serial.println ("Go Backwards");
  delay (200);
  goBackward();
  delay (1000);
  Serial.println ("Halt!");
  halt();
  while(1) { } // Stop program
}

void goForward() {
  Roomba.write(137);   // DRIVE
  Roomba.write((byte)0x00);   // 0x00c8 == 200
  Roomba.write(0xc8);
  Roomba.write(0x80);
  Roomba.write((byte)0x00);
}

void spinLeft() {
  Roomba.write(137);   // DRIVE
  Roomba.write((byte)0x00);   // 0x00c8 == 200
  Roomba.write(0xc8);
  Roomba.write(0x00);         //0x0001==spin left
  Roomba.write((byte)0x01);
}

void goBackward() {
  Roomba.write(137);   // DRIVE
  Roomba.write(0xff);   // 0xff38 == -200
  Roomba.write(0x38);
  Roomba.write(0x80);
  Roomba.write((byte)0x00);
}

void halt(){
 byte j = 0x00;
 Roomba.write(137);   
 Roomba.write(j);   
 Roomba.write(j);
 Roomba.write(j);
 Roomba.write(j);
}
奥利弗·查尔斯沃思

0x00可以解释为整数文字或指针文字。编译器不知道您的意思,因为两者都有重载。

因此,将该行更改为:

Roomba.write((byte)0x00);

或更冗长的C ++样式转换:

Roomba.write(static_cast<byte>(0x00));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重载函数的调用不明确

来自分类Dev

重载函数的调用不明确,double vs float

来自分类Dev

为什么对重载函数的调用不明确?

来自分类Dev

解决了不明确的重载方法调用

来自分类Dev

使用QApplication :: applicationDirPath调用时,重载的arg(QString(&)())的调用不明确,为什么?

来自分类Dev

使用float会导致“对重载函数的调用不明确”错误

来自分类Dev

__int128_t不明确的std :: ostream重载(从命名空间调用时)

来自分类Dev

重载字符向量和字符串C ++时对成员函数的调用不明确

来自分类Dev

为什么编译器在 C++11 中给出消息“重载函数的调用不明确”?

来自分类Dev

对“ Create”(而不是“ Foo”)的不明确的重载调用

来自分类Dev

无法在 SoapUI 中调用请求 - 不明确的方法重载

来自分类Dev

同一库之间的调用不明确?

来自分类Dev

为什么对swap()的调用不明确?

来自分类Dev

为什么这些方法调用不明确?

来自分类Dev

以下方法之间的调用不明确

来自分类Dev

C ++为什么调用不明确?

来自分类Dev

Firebase调用中下标的使用不明确

来自分类Dev

为什么这些方法调用不明确?

来自分类Dev

x 和 x 之间的调用不明确

来自分类Dev

错误:重载运算符“ *”的使用不明确

来自分类Dev

不明确的函数重载 [例如 max()]

来自分类Dev

对“ X”的引用不明确

来自分类Dev

对“列表”的引用不明确

来自分类Dev

下标使用不明确

来自分类Dev

SparkSQL CSV的引用不明确

来自分类Dev

“调用不明确”(调用具有相同数据结构的方法)

来自分类Dev

调用重载方法时出现错误信息“对于其他类型不明确”

来自分类Dev

错误:以下方法或属性之间的调用不明确...需要帮助

来自分类Dev

相同路径上的“以下方法或属性之间的调用不明确”

Related 相关文章

  1. 1

    重载函数的调用不明确

  2. 2

    重载函数的调用不明确,double vs float

  3. 3

    为什么对重载函数的调用不明确?

  4. 4

    解决了不明确的重载方法调用

  5. 5

    使用QApplication :: applicationDirPath调用时,重载的arg(QString(&)())的调用不明确,为什么?

  6. 6

    使用float会导致“对重载函数的调用不明确”错误

  7. 7

    __int128_t不明确的std :: ostream重载(从命名空间调用时)

  8. 8

    重载字符向量和字符串C ++时对成员函数的调用不明确

  9. 9

    为什么编译器在 C++11 中给出消息“重载函数的调用不明确”?

  10. 10

    对“ Create”(而不是“ Foo”)的不明确的重载调用

  11. 11

    无法在 SoapUI 中调用请求 - 不明确的方法重载

  12. 12

    同一库之间的调用不明确?

  13. 13

    为什么对swap()的调用不明确?

  14. 14

    为什么这些方法调用不明确?

  15. 15

    以下方法之间的调用不明确

  16. 16

    C ++为什么调用不明确?

  17. 17

    Firebase调用中下标的使用不明确

  18. 18

    为什么这些方法调用不明确?

  19. 19

    x 和 x 之间的调用不明确

  20. 20

    错误:重载运算符“ *”的使用不明确

  21. 21

    不明确的函数重载 [例如 max()]

  22. 22

    对“ X”的引用不明确

  23. 23

    对“列表”的引用不明确

  24. 24

    下标使用不明确

  25. 25

    SparkSQL CSV的引用不明确

  26. 26

    “调用不明确”(调用具有相同数据结构的方法)

  27. 27

    调用重载方法时出现错误信息“对于其他类型不明确”

  28. 28

    错误:以下方法或属性之间的调用不明确...需要帮助

  29. 29

    相同路径上的“以下方法或属性之间的调用不明确”

热门标签

归档