首页 > 解决方案 > 从 arduino 的串行电车获取 INT

问题描述

我正在尝试在我的 Arduino 代码中分析从 Serial 接收到的电车。

我收到这样的消息: ACTION=24:A2:D1:8F:38:28=12

我知道如何将 3 部分分成字符串。我现在有一个带有 ACTION 的字符串,一个带有 MAC 地址的字符串和一个带有最后一个“=”之后的最后一个值的字符串。

但我想将“=”之后的最后一个值转换为 INT。

我的代码是:

if (Serial.available()) {
  Serial.println("Recpetion en cours");

  c = Serial.readString();
  sixFirstChar = c.substring(0, 6);
  Serial.println(c);
  Serial.println(sixFirstChar);
  if (sixFirstChar == "ACTION" || sixFirstChar == "SAVING" || sixFirstChar == "MASTER") {
    ActionAccRqst = c.substring(7,24);
    ActionToSend = c.substring(25,c.length());
    Serial.println("Une action est à envoyer à : ");
    Serial.print(ActionAccRqst);
    Serial.print(" -> ");
    Serial.println(ActionToSend);

    if (sixFirstChar == "ACTION") {
      myData.Type = 1;
    } else if (sixFirstChar == "SAVING") {
      myData.Type = 2;
    } else if (sixFirstChar == "MASTER") {
      myData.Type = 10;
    }

    myData.Message = ActionToSend.toInt();

    Serial.println(myData.Type);
    Serial.println(myData.Message);
  }
}

我尝试过toInt()将 myData.Message 定义为 Long 但我的 SerialPrint 返回始终为 0 ...

标签: arduinoserial-portinteger

解决方案


推荐阅读