String 如何在Arduino中存储Serial.read()接收的字符串?
我使用serialport库从NodeJs运行时发送数据 目标是将从String 如何在Arduino中存储Serial.read()接收的字符串?,string,arduino,String,Arduino,我使用serialport库从NodeJs运行时发送数据 目标是将从Serial.read()接收的字符串存储在Arduino中。什么是正确的: int string = Serial.read() 或: 互联网上有很多文档,它们是不一样的 p/s:我以缓冲区形式从nodejs发送字符串,但我认为这并不重要,因为arduino仍然将其作为字符串实现。来自arduino文档: int incomingByte = 0; // for incoming serial data void set
Serial.read()
接收的字符串存储在Arduino中。什么是正确的:
int string = Serial.read()
或:
互联网上有很多文档,它们是不一样的
p/s:我以缓冲区形式从nodejs发送字符串,但我认为这并不重要,因为arduino仍然将其作为字符串实现。来自arduino文档:
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
}
.read():
返回输入的可用串行数据的第一个字节(如果没有,则返回-1)
数据可用)-int
仅供参考:我已经多次使用此代码,它可以100%工作。来自Arduino文档:
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
}
.read():
返回输入的可用串行数据的第一个字节(如果没有,则返回-1)
数据可用)-int
仅供参考:我已经多次使用此代码,它的工作效率为100%。我发送了一个类似“255255”的字符串。现在我使用时incomingByte是一个值为“255255”的字符串吗?因为首先我们将其声明为int,而不是String如果是这样的话,您可以使用
Serial.readString()
:String a;void setup(){Serial.begin(9600);//打开串行端口,将数据速率设置为9600 bps}void loop(){while(Serial.available()){a=Serial.readString();//将传入数据读取为string Serial.println(a);}
好的,谢谢,现在我明白了。但是arduino中string和char a[]之间的区别是什么,因为当我尝试{int number=a[0]}获取字符串中的第一个整数时,它不会变成2如果需要获取一个值,指定字符串索引,可以使用charAt(n)
。你可以在这里找到更多关于它的信息:我发送了一个类似“255255”的字符串。现在incomingByte是一个值为“255255”的字符串吗?因为首先我们将其声明为int,而不是String如果是这样的话,您可以使用Serial.readString()
:String a;void setup(){Serial.begin(9600);//打开串行端口,将数据速率设置为9600 bps}void loop(){while(Serial.available()){a=Serial.readString();//将传入数据读取为string Serial.println(a);}
好的,谢谢,现在我明白了。但是arduino中string和char a[]之间的区别是什么,因为当我尝试{int number=a[0]}获取字符串中的第一个整数时,它不会变成2如果需要获取一个值,指定字符串索引,可以使用charAt(n)
。您可以在这里找到更多信息:读取并调用一个应该返回字符串而不是字符的方法?或者查看serial?Read并调用一个应该返回字符串而不是字符的方法的众多现有教程中的任何一个?或者查看任何一个现有的系列教程?