【发布时间】:2012-04-11 15:56:44
【问题描述】:
好的,我已经用 Arduino 从 Serial 中搜索了一个字符串,但我什至没有运气复制和粘贴示例。
我正在尝试从 Serial 中获取字符串。这是我的代码:
void setup() {
Serial.begin(9600);
Serial.write("Power On");
}
void loop()
{
while(!Serial.available());
while (Serial.available() > 0) {
Serial.write(Serial.read());
}
Serial.println();
}
它是一个字符一个字符地打印出来。
我也试过
char* read(int len) {
while (!Serial.available());
char str[len];
int i = 0;
while (i < len) {
str[i] = '\0';
int inByte = Serial.read();
Serial.println(inByte);
if (inByte == -1) {
return str;
} else {
str[i++] = inByte;
}
}
return str;
}
它一次返回 1 个字符(serial.print(inByte) 每隔一次给出 -1)。为什么 Serial 会拆分每个字符?
如果我输入 'hello' 并调用 serial.read(),它会给出一个字符然后说什么都没有,然后给出另一个字符并说什么都没有。
【问题讨论】:
-
串口很慢。您通常一次只得到一个字节,然后有一段时间什么都没有。你需要在你的代码中处理它,你现在不这样做。
标签: c stream serial-port arduino