ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
825880 Топик полностью
Лагунов (21.03.2018 08:16, просмотров: 159) ответил ASDFS на Кажисть там что то с полем CRC. При антиколлизии его нет, при селекте должно быть.
Вот чем пользуюсь последние 2 года. Это всё чужое, сейчас даже ссылку не вспомню. PICC_ANTICOLL -> 0х93. Всегда было нормально, после этого я исправно получал свои 4 байта сер.номера. И сейчас с 7-байтной картой получаю, но первый байт - 0х88. Любые мои попытки чего там добавлять не приводят к чтению. Мне возврат status=2; TM_MFRC522_Status_t TM_MFRC522_Anticoll(uint8_t* serNum) { TM_MFRC522_Status_t status; uint8_t i; uint8_t serNumCheck = 0; uint16_t unLen; TM_MFRC522_ClearBitMask(MFRC522_REG_STATUS2, 0x08); TM_MFRC522_ClearBitMask(MFRC522_REG_COLL, 0x80); TM_MFRC522_WriteRegister(MFRC522_REG_BIT_FRAMING, 0x00); //TxLastBists = BitFramingReg[2..0] serNum[0] = PICC_ANTICOLL; serNum[1] = 0x20; status = TM_MFRC522_ToCard(PCD_TRANSCEIVE, serNum, 2, serNum, &unLen); if (status == MI_OK) { //Check card serial number for (i = 0; i < 4; i++) { serNumCheck ^= serNum[i]; } if (serNumCheck != serNum[i]) { status = MI_ERR; } } return status; }