Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我不知道如何使用Serial.println_C++_Arduino - Fatal编程技术网

C++ 我不知道如何使用Serial.println

C++ 我不知道如何使用Serial.println,c++,arduino,C++,Arduino,我写了下面的代码。但是Serial.println发生了错误 我相信代码是错误的。但我不知道怎么了。 你能告诉我怎么解决这个问题吗 class Move { public: int x; int y; void go(int w, int h); }; void Move::go(int w, int h) { x += w; y += h; } Move m; void setup() { Serial.begin(9600); m

我写了下面的代码。但是Serial.println发生了错误

我相信代码是错误的。但我不知道怎么了。 你能告诉我怎么解决这个问题吗

class Move {
public:
    int x;
    int y;
    void go(int w, int h);
};

void Move::go(int w, int h) {
    x += w;
    y += h;
}

Move m;

void setup() {
    Serial.begin(9600);
    m.x = 10;
    m.y = 20;
    Serial.println("at start: x is %d, y is %d", m.x, m.y);  
}

void loop() {
    m.go(10, 20);
    Serial.println("x is %d, y is %d", m.x, m.y);  
}
错误如下:

c:\Users\a\Dropbox\!Arduino\class\classes.ino: In function 'void setup()':

classes:19:58: error: no matching function for call to 'HardwareSerial::println(const char [27], int&, int&)'

     Serial.println("at start: x is %d, y is %d", m.x, m.y);

                                                          ^

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:233,

                 from sketch\classes.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:77:12: note: candidate: size_t Print::println(const __FlashStringHelper*)

     size_t println(const __FlashStringHelper *);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:77:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:78:12: note: candidate: size_t Print::println(const String&)

     size_t println(const String &s);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:78:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:79:12: note: candidate: size_t Print::println(const char*)

     size_t println(const char[]);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:79:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:80:12: note: candidate: size_t Print::println(char)

     size_t println(char);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:80:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:81:12: note: candidate: size_t Print::println(unsigned char, int)

     size_t println(unsigned char, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:81:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:82:12: note: candidate: size_t Print::println(int, int)

     size_t println(int, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:82:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:83:12: note: candidate: size_t Print::println(unsigned int, int)

     size_t println(unsigned int, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:83:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:84:12: note: candidate: size_t Print::println(long int, int)

     size_t println(long, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:84:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:85:12: note: candidate: size_t Print::println(long unsigned int, int)

     size_t println(unsigned long, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:85:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:86:12: note: candidate: size_t Print::println(double, int)

     size_t println(double, int = 2);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:86:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:87:12: note: candidate: size_t Print::println(const Printable&)

     size_t println(const Printable&);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:87:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:88:12: note: candidate: size_t Print::println()

     size_t println(void);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:88:12: note:   candidate expects 0 arguments, 3 provided

c:\Users\a\Dropbox\!Arduino\class\classes.ino: In function 'void loop()':

classes:24:48: error: no matching function for call to 'HardwareSerial::println(const char [17], int&, int&)'

     Serial.println("x is %d, y is %d", m.x, m.y);

                                                ^

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:233,

                 from sketch\classes.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:77:12: note: candidate: size_t Print::println(const __FlashStringHelper*)

     size_t println(const __FlashStringHelper *);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:77:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:78:12: note: candidate: size_t Print::println(const String&)

     size_t println(const String &s);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:78:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:79:12: note: candidate: size_t Print::println(const char*)

     size_t println(const char[]);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:79:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:80:12: note: candidate: size_t Print::println(char)

     size_t println(char);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:80:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:81:12: note: candidate: size_t Print::println(unsigned char, int)

     size_t println(unsigned char, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:81:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:82:12: note: candidate: size_t Print::println(int, int)

     size_t println(int, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:82:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:83:12: note: candidate: size_t Print::println(unsigned int, int)

     size_t println(unsigned int, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:83:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:84:12: note: candidate: size_t Print::println(long int, int)

     size_t println(long, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:84:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:85:12: note: candidate: size_t Print::println(long unsigned int, int)

     size_t println(unsigned long, int = DEC);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:85:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:86:12: note: candidate: size_t Print::println(double, int)

     size_t println(double, int = 2);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:86:12: note:   candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:87:12: note: candidate: size_t Print::println(const Printable&)

     size_t println(const Printable&);

            ^~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:87:12: note:   candidate expects 1 argument, 3 provided

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:88:12: note: candidate: size_t Print::println()

     size_t println(void);

            ^~~~~~~

请告诉我有什么问题。

问题是您使用的是串行.println(),就好像它在printf()中一样。中指定的Serial.println()只接受两个参数,第一个参数是要通过串行端口打印的值,第二个参数是要发送该值的格式


要实现最初的目标,您需要做的是先将要发送的值连接起来,然后使用Serial.println()发送它们。

如果要打印四件东西,最快、最有效的方法通常是只调用print 4次。与涉及格式字符串相比,打印非常轻量级。如果你是为个人电脑写作,谁会在乎呢。但是,如果你是为阁楼、联合国办事处或其他机构写作,那么你通常可以使用节省下来的钱

Serial.println("at start: x is %d, y is %d", m.x, m.y);
变成:

Serial.print("at start: x is ");
Serial.print(m.x);
Serial.print(", y is ");
Serial.println(m.y);

请注意,除了最后一个外,我在所有的上都使用了打印。只有最后一个是println。那样的话,只有最后一条会换行,接收者无法知道我发送的是一条语句还是三条语句。它们都在同一个缓冲区中,并以相同的方式输出。

“但是Serial.println发生了错误”-复制错误并将其作为文本放入问题中,这样就更容易找出问题所在。不象
printf
那样工作。它打印第一个参数。如果第一个参数是数字,则第二个可选参数指定base。请检查:不要绕过关于代码太多、文本不够的警告。这是有原因的。您提供了一页又一页的错误文本,仅共享相关错误。您是否可以粘贴(或提供链接)任何说明或暗示
Serial.println的文档(“开始时:x是%d,y是%d”,m.x,m.y)合法吗?谢谢你给我的建议。那么我应该使用什么函数来代替println呢?在python“print('Hello%s!'%'World')中,您仍然可以使用该函数,但不必编写Serial.println(“开始时:x是%d,y是%d”,m.x,m.y)
您应该编写
Serial.println(“开始时:x是“+std::to_string(m.x)+”,y是“+std::to_string(m.y))Serial
进行编码,您可以调用
print
来构造输出,并使用
println
完成该行。没有必要提前构造完整响应。@AntoniodeHaro大多数Arduino安装都没有标准库<代码>标准::字符串
通常不可用,除非用户特意安装了一个。编辑:ArduinoSDK确实提供了一个类。