串行写入 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\1.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&)'


繁星淼淼
浏览 178回答 2
2回答

慕斯王

如果要发送字符串意味着您直接在 serial.write() 中输入字符串。同时将字符串直接输入 serial.write() 那么它将将该字符串作为 const char* 而不是字符串类型Serial.write("hello");否则你不能直接在 serial.write 中发送字符串。你可以使用 serial.print.use char 数组发送Serial.write(MyString, sizeof(MyString));否则你可以发送每个字符void writeString(String stringData) { // Used to serially push out a String with Serial.write()&nbsp; for (int i = 0; i < stringData.length(); i++)&nbsp; {&nbsp; &nbsp; Serial.write(stringData[i]);&nbsp; &nbsp;// Push each char 1 by 1 on each loop pass&nbsp; }}// 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在 Python 中读取行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python