首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >串口读取与处理,找不到字符串

串口读取与处理,找不到字符串
EN

Stack Overflow用户
提问于 2015-07-23 17:34:33
回答 1查看 590关注 0票数 1

我试图从处理中读取串口。为此,我正在尝试一个基本的hello world示例。我写“你好世界”!从Arduino开始试着用处理的方法抓住它。以下是密码:

以下是Arduino Uno的代码:

代码语言:javascript
复制
void setup() 
{
  //initialize serial communications at a 9600 baud rate
  Serial.begin(9600);
}

void loop()
{
  //send 'Hello, world!' over the serial port
  Serial.println("Hello, world!");
  //wait 100 milliseconds so we don't drive ourselves crazy
  delay(100);
}

以下是用于处理的代码:

代码语言:javascript
复制
import processing.serial.*;

Serial myPort;  // Create object from Serial class

String val;     // Data received from the serial port
String check     = "Hello, world!";
String portName  = Serial.list()[1]; //COM4



void setup() {
  myPort = new Serial(this, portName, 9600);
  println("Starting Serial Read Operation");
}

void draw()
{

  if ( myPort.available() > 0) {  // If data is available,


    val = myPort.readStringUntil('\n');


    println(val);
    if (val != null && val.equals("Hello, world!") == true) {

      println("Found the starting Point");
    }
  }
}

我抓不到支票串。

加工输出:

代码语言:javascript
复制
null
Hello, world!

null
Hello, world!

null
Hello, world!

Hello, world!

根据输出,我可以成功地读取串口。(然而,有很多空白处,我不知道为什么。)但我无法捕获指定的字符串。

你知道问题出在哪里吗?

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-24 06:17:31

Arduino在使用println时发送\r\n

当您比较时,它会失败,因为您正在比较"Hello, world!\r""Hello, world!"

您可以通过使用Serial.print()并手动向字符串中添加一个\n或在文本之后发送一个Serial.write('\n');来解决这个问题(可以用一个助手函数替换重复)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31594382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档