ZBLOG

void NEC_VOID() { uint8_t success; uint8_t uid[8]; // 假设UID最多8个字节(根据PN532库文档或实际NFC卡调整) uint8_t uidLength; static int j = 0; success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength); if (suc...

在你提供的代码中,你添加了一个条件判断 if (j = 100) 来重置变量 j 的值为0。然而,请注意在条件判断时应使用双等号(==)进行相等性比较,而不是单等号(=)赋值操作符。因此,你应该将条件判断改为 if (j == 100)

以下是修正后的代码:

void NEC_VOID() {  
    uint8_t success;  
    uint8_t uid[8]; // 假设UID最多8个字节(根据PN532库文档或实际NFC卡调整)  
    uint8_t uidLength;
    static int j = 0;  
  
    success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);  
  
    if (success) {  
        Serial.println("Found an NFC card!");  
        Serial.print("UID Length: ");  
        Serial.print(uidLength, DEC);  
        Serial.println(" bytes");  
        Serial.print("UID Value: ");  
        
        for (uint8_t i = 0; i < uidLength; i++) { 
            Serial.print(" "); 
            Serial.print(uid[i], HEX);  
        }  
    
        Serial.println("");  

        uint8_t targetUid[] = {0x33, 0xc9, 0xf5, 0x03}; // 示例UID,注意这里我修改了最后一个字节为0x00,如果这是错误的,请更正
        
        // 只比较实际读取到的UID长度
        if (uidLength == sizeof(targetUid) && memcmp(uid, targetUid, uidLength) == 0) 
        {   
            j++;
            if (j == 100)
            {
              j = 0;
            }
            
            // 切换LED状态
            if (j % 2 != 0) {
                // 奇数次刷卡,点亮LED
                digitalWrite(LED_PIN, HIGH);  
                Serial.println("LED is ON");
                Serial.println(j);
            } else {
                // 偶数次刷卡,熄灭LED
                digitalWrite(LED_PIN, LOW);
                Serial.println("LED is OFF");
                Serial.println(j);                
            }
            
        } else {  
            Serial.println("UID does not match the target UID");
            Serial.println(sizeof(targetUid)); 
        }  
    }

    delay(1000); // 等待一段时间再次检测  
}

请注意修复后的代码中的条件判断语句 if (j == 100)。现在,当变量 j 达到100时,它会被重置为0,并继续计数。每次刷卡都会在奇数和偶数次之间切换LED灯的状态,并通过串口输出相关信息。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=17556

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?