433 MHz 接收器
Arduino环境
发送器发送Y、N 或M,效果很好。问题出在接收者代码上。目标是,在接收者的值 message 等于 N 之后,它假设触发一个 if 语句来做某事。我只需要有一个系统可以确定接收方是否接收特定值。
void loop()
{
if (vw_get_message(message, &messageLength)) // Non-blocking
{
Serial.print("Received: ");
for (int i = 0; i < messageLength; i++)
{
Serial.write(message[i]);
const char *p = reinterpret_cast<const char*>(message);
if(p == "N")
{
Serial.print("if statement works when = N");
}
}
}
}
问题是,它根本做不到,经过2周的奋斗,我完全不知所措。此代码将编译并运行,但 if 语句将被完全忽略。
最佳答案
if (p=="N")
比较两个指针。虽然它们指向的内容可以相同,但这并不意味着指针本身是相等的。
您可能需要strcmp
(C 风格)或std::string::operator==
(规范的C++)
关于c++ - 433 接收器 Arduino if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457303/