In nối tiếp, chuỗi và biến trên cùng một dòng


8

Làm cách nào tôi có thể in ra màn hình nối tiếp một chuỗi hoặc chỉ một ký tự theo sau là một biến như "L 55"


Đọc tài liệu Arduino cho Serial.print.
jfpoilpret

Câu trả lời:


10
int Var = 55;
//Do it in 2 lines e.g.
Serial.print("L ");     // String
Serial.println(Var);    // Print Variable on same line then send a line feed

1

Để in gỡ lỗi, bạn có thể xác định một macro để in cả tên và giá trị của một biến như thế này:

#define PRINTLN(var) Serial.print(#var ": "); Serial.println(var)

mà sau đó bạn sử dụng như thế này:

int x = 5;
PRINTLN(x);

// Prints 'x: 5'

Ngoài ra điều này là tốt đẹp:

#define PRINT(var) Serial.print(#var ":\t"); Serial.print(var); Serial.print('\t')
#define PRINTLN(var) Serial.print(#var ":\t"); Serial.println(var)

khi được sử dụng trong một vòng lặp như vậy

PRINT(x);
PRINT(y);
PRINTLN(z);

in một đầu ra như thế này:

x:  3   y:  0.77    z:  2
x:  3   y:  0.80    z:  2
x:  3   y:  0.83    z:  2

1

Cảm ơn rất nhiều cho câu trả lời của bạn. Toi lam cai nay ...

#define DEBUG  //If you comment this line, the functions below are defined as blank lines.
#ifdef DEBUG    //Macros 
  #define Say(var)    Serial.print(#var"\t")   //debug print, do not need to put text in between of double quotes
  #define SayLn(var)  Serial.println(#var)  //debug print with new line
  #define VSay(var)    Serial.print(#var " =\t"); Serial.print(var);Serial.print("\t")     //variable debug print
  #define VSayLn(var)  Serial.print(#var " =\t"); Serial.println(var)  //variable debug print with new line
#else
  #define Say(...)     //now defines a blank line
  #define SayLn(...)   //now defines a blank line
  #define VSay(...)     //now defines a blank line
  #define VSayLn(...)   //now defines a blank line
#endif

if (some_condition) VSayLn(some_var);sẽ không làm việc như dự định. Các sửa chữa tiêu chuẩn là #define VSayLn(var) do { Serial.print(#var " =\t"); Serial.println(var); } while (0). Cf Tại sao sử dụng các câu lệnh do-while và if-
Edgar Bonet
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.