[英]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.