【问题标题】:Reading first few characters from Arduino serial input从 Arduino 串行输入读取前几个字符
【发布时间】:2018-04-28 17:36:41
【问题描述】:

我试图通过比较从 android 到 Arduino 的输入文本来分离四个功能。为此我写了一小段代码如下:

//Input string
String inStr = "";
char inChar;
int x = 0;
void setup() {
    Serial.begin(9600);
}

void loop() {
  if(inStr == "st") { Serial.print(inStr); inStr = ""; x = 0; }
  if(inStr == "sp") { Serial.print(inStr); inStr = ""; x = 0; }
  if(inStr == "cc") { Serial.print(inStr); inStr = ""; x = 0; }
  if(inStr == "cb") { Serial.print(inStr); inStr = ""; x = 0; }
}

void serialEvent() {
  while(Serial.available()) {
    if(x < 2) {
       inChar = Serial.read();
       inStr += inChar;
  }
  Serial.print(inStr); //Just to debug
}

它为从 android 应用程序发送“sp”、“cc”、“cb”的按钮提供了很好的输入。但是发送“st”的按钮也会从android发送时间,即它发送的总字符串是“st22:00:11”(例如以22:00:11为时间)。这个字符串是我试图打破“st”但我的代码无法做到的。

【问题讨论】:

标签: android string bluetooth arduino


【解决方案1】:

假设代码只是输入字符串开头的2个字母,您可以对输入字符串进行子串化:

String extractedStr = inStr.substring(0,2); //This is the first 2 letters

【讨论】:

  • 我不想使用外部库来解决这个问题,你能提出基本的解决方法吗?
  • 这一切都在 Java SDK 中:PatternMatcher
  • 据我所知,Arduino 不支持这些。 Java SDK?我有点困惑。
  • 那我好像误解了你的问题,你是在安卓应用还是在你的arduino上解析这些字符串?
  • 我正在 arduino 上解析这些字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2013-01-25
  • 2014-05-09
相关资源
最近更新 更多