繁体   English   中英

在Arduino RadioHead中使用带有const char *的Serial.read()

[英]Using Serial.read() with const char * in Arduino RadioHead

我正在尝试使用RadioHead ASK通过串行监视器发送文本。 从串行监视器输入的文本不会发送到接收器。 我已经阅读了有关char数组和指针的C ++理论...它不是在我的脑海中计算:)。 * msg如何在不先声明char msg的情况下存在? 请参阅下面的示例。 如果您可以用任何示例解决方案来解释该理论,那将是很好的。 谢谢您的帮助!

void setup() {
  Serial.begin(9600); // Debugging only
  if (!driver.init())
    Serial.println("init failed");
  else
    Serial.println("TX");
}

void loop() {
  const char *msg = Serial.read();
  driver.send((uint8_t *)msg, strlen(msg));
  driver.waitPacketSent();
  delay(200);
}

这似乎有效。 strMsg.toCharArray(msg,i); 您能否评论一下代码的效率? 有没有更好的办法? 谢谢!

void setup() {
  Serial.begin(9600); // Debugging only
  if (!driver.init())
    Serial.println("init failed");
  else
    Serial.println("TX");
}

void loop() {
if (Serial.available() > 0)
  {
String strMsg = "";
int i;

strMsg = Serial.readString();
i = (strMsg.length() + 1);
char msg[i] = {};
Serial.print("Sent: ");
Serial.println(strMsg);
Serial.print("Size: ");
Serial.println(i);
strMsg.toCharArray(msg, i);
driver.send((uint8_t *)msg, strlen(msg));
driver.waitPacketSent();
delay(200);
 }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM