c++ - 433 接收器 Arduino if 语句

标签 c++ arduino

433 MHz 接收器

Arduino环境

发送器发送YNM,效果很好。问题出在接收者代码上。目标是,在接收者的值 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/

相关文章:

c++ - 如何通过Windows Defender SmartScreen保护?

c++ - 将 double 分配给 const int& vs int 分配给 const int&

c++ - 是否有最常见的有害命令列表?

c++ - 32 位二进制到 24 位有符号转换

database - Arduino 从 SD 卡读取数据库文件

c++ - 在 boost-spirit 中,有没有办法通过函数调用创建语法以减少代码?

c++ - __PRETTY_FUNCTION__ 在常量表达式中

c - 在处理过程中,如何通过这段代码使音量变大?

c++ - 隐藏密码以防止从 .o 文件或 .hex 文件读取

macos - 触发 mac 应用程序以从声音或其他物理(现实世界)事件开始