串口写Arduino
Serial write Arduino
函数 Serial.write() 有问题 我正在测试与 python 的连接,我可以发送数字、单词或字母,但是当我尝试发送值变量函数 Serial.write 给我一个错误。那么你能告诉我发生了什么事吗?
#define Pin A1
void setup() {
pinMode(Pin, INPUT);
Serial.begin(9600);
}
void loop() {
String a = String(13);
Serial.write(a);
}
ERROR
C:\Users\ADMIN\AppData\Local\Arduino15\packages\arduino\hardware\avr.8.2\cores\arduino/Print.h:52:12: note: no known conversion for argument 1 from 'String' to 'const char*'
exit status 1
no matching function for call to 'HardwareSerial::write(String&)'
如果要发送字符串意味着您直接在 serial.write() 中输入字符串。而将字符串直接输入 serial.write() 则它将将该字符串作为 const char* 而不是作为字符串类型
Serial.write("hello");
否则你不能像serial.write那样直接发送字符串。你可以使用serial.print.use字符数组来发送
Serial.write(MyString, sizeof(MyString));
否则你可以发送每个字符
void writeString(String stringData) { // Used to serially push out a String with Serial.write()
for (int i = 0; i < stringData.length(); i++)
{
Serial.write(stringData[i]); // Push each char 1 by 1 on each loop pass
}
}// end writeString
write
只能发送单个字节(或单个字符)、字节数组(明确提供长度)或以 nul 结尾的字符串(不是 String 对象)。
看起来你想要 Serial.print(a);
而不是 Serial.write(a);
。
或者 Serial.write(a.c_str());
或者只是 Serial.print(13);
.
由于您不想在发送 34、56、434、2 时得到“34564342”,我建议您将它们作为带有 println
的行发送,然后读取 [=23= 中的行].
函数 Serial.write() 有问题 我正在测试与 python 的连接,我可以发送数字、单词或字母,但是当我尝试发送值变量函数 Serial.write 给我一个错误。那么你能告诉我发生了什么事吗?
#define Pin A1
void setup() {
pinMode(Pin, INPUT);
Serial.begin(9600);
}
void loop() {
String a = String(13);
Serial.write(a);
}
ERROR
C:\Users\ADMIN\AppData\Local\Arduino15\packages\arduino\hardware\avr.8.2\cores\arduino/Print.h:52:12: note: no known conversion for argument 1 from 'String' to 'const char*'
exit status 1
no matching function for call to 'HardwareSerial::write(String&)'
如果要发送字符串意味着您直接在 serial.write() 中输入字符串。而将字符串直接输入 serial.write() 则它将将该字符串作为 const char* 而不是作为字符串类型
Serial.write("hello");
否则你不能像serial.write那样直接发送字符串。你可以使用serial.print.use字符数组来发送
Serial.write(MyString, sizeof(MyString));
否则你可以发送每个字符
void writeString(String stringData) { // Used to serially push out a String with Serial.write()
for (int i = 0; i < stringData.length(); i++)
{
Serial.write(stringData[i]); // Push each char 1 by 1 on each loop pass
}
}// end writeString
write
只能发送单个字节(或单个字符)、字节数组(明确提供长度)或以 nul 结尾的字符串(不是 String 对象)。
看起来你想要 Serial.print(a);
而不是 Serial.write(a);
。
或者 Serial.write(a.c_str());
或者只是 Serial.print(13);
.
由于您不想在发送 34、56、434、2 时得到“34564342”,我建议您将它们作为带有 println
的行发送,然后读取 [=23= 中的行].