MFRC522: прошивка неизвестна

Может ли кто-нибудь помочь мне, что означает этот скетч? Он всегда выводится в последовательный монитор:

Firmware Version: 0x1C = (unknown)
Scan PICC to see UID, SAK, type, and data blocks...

Это код библиотеки MFRC522, которую я использую:

#include <SPI.h>
#include <MFRC522.h>

constexpr uint8_t RST_PIN = 9;          // Настраивается, см. типичное расположение выводов выше
constexpr uint8_t SS_PIN = 10;         // Настраивается, см. типичное расположение выводов выше

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Создаем экземпляр MFRC522

void setup() {
   Serial.begin(9600);   // Инициализируем последовательную связь с ПК
   while (!Serial);    // Ничего не делать, если последовательный порт не открыт (добавлено для Arduino на базе ATMEGA32U4)
   SPI.begin();      // Инициируем шину SPI
   mfrc522.PCD_Init();   // Инициализация MFRC522
   mfrc522.PCD_DumpVersionToSerial();  // Показать сведения о PCD — сведения о считывателе карт MFRC522
   Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}

void loop() {
   // Ищем новые карты
   if ( ! mfrc522.PICC_IsNewCardPresent()) {
     return;
   }

   // Выбираем одну из карт
   if ( ! mfrc522.PICC_ReadCardSerial()) {
     return;
   }

   // Дамп отладочной информации о карте; PICC_HaltA() вызывается автоматически
   mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

, 👍0

Обсуждение

Код достаточно хорошо прокомментирован, что вам не понятно? Строка output Firmware Version:, очевидно, выводится функцией PCD_DumpVersionToSerial(). Вы получаете какой-либо другой результат, кроме этого? Вы также должны увидеть Отсканируйте PICC, чтобы увидеть.... Разве ты этого не видишь? Пожалуйста, будьте более точны и включите *несколько* дополнительных строк вывода, чтобы проиллюстрировать любое повторение вывода., @Greenonline

да, он также выводится, но считыватель не читает ни карту RFID, ни ключ RFID, поэтому я предположил, что это была ошибка, @hotchongas

Попробуйте запустить пример firmware_check. В этом скетче говорится, что поддерживаются только известные версии (Serial.println(F("Поддерживаются только известные версии"));), поэтому ваша первая строка вывода не сулит ничего хорошего, @Greenonline

Пожалуйста, добавьте ссылку на свой пост, на библиотеку, которую вы используете. Это вот этот: https://github.com/miguelbalboa/rfid?, @Greenonline

да, это тот, который я использую., @hotchongas


2 ответа


1

Упоминание unknown в строке вывода:

Firmware Version: 0x1C = (unknown)

это плохой знак.

Запустите пример firmware_check, чтобы проверить это, прежде чем пытаться запустить другой код.

неизвестный выводится строкой 1302 из MFRC522.cpp:

    default:   Serial.println(F(" = (unknown)"));

В примере firmware_check указано < a href="https://github.com/miguelbalboa/rfid/blob/master/examples/firmware_check/firmware_check.ino#L49">строка 49:

  Serial.println(F("Only known versions supported"));

Итак, ваше оборудование (например, устройство чтения) может не поддерживаться.

Единственное, что я могу посоветовать, это попробовать другую читалку. Также прочтите README, может там что-то есть, или свяжитесь с автором и/или < a href="https://github.com/miguelbalboa/rfid/issues">поднимите вопрос, чтобы узнать, можете ли вы получить поддержку для вашей версии прошивки (0x1C), добавленной .

,

0

Поместите delay(5) после

mfrc522.PCD_Init();   // Инициализация MFRC522

и он покажет правильную версию прошивки.

,