【发布时间】:2017-01-20 07:17:33
【问题描述】:
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 语句被完全忽略。
【问题讨论】:
-
您将
char与string进行比较。引号在 C++ 中有所不同。检查一下。 -
这里,
p是指向变量的指针,而"N"是指向常量的指针。所以它们的值几乎不可能相等。