我尝试使用RadioHead ASK通过串行监视器发送文本。从串行监视器输入的文本不会发送到接收器。我已经阅读了关于C ++理论的char数组和指针......它不是我脑子里的计算:)。如果没有先声明char msg,* 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);
}
答案 0 :(得分:0)
这似乎有效。 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);
}
}