我有一个 arduino 草图,它监听 RFID 标签,并获取它们的 uid 并将它们存储在一个数组中uint32_t
这是一个带有adaFruit BTLE和adafruit NFC/RFID Shield的 arduino_uno 项目
数组是这样启动的:
uint32_t items[]= { 0,0,0,0,0,0};
然后在我的循环()中;
我找到一个像这样的 id:
success = nfc1.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
//
Serial.println(success,DEC);
if (success) {
// Display some basic information about the card
//Serial.println("Found an ISO14443A card");
//Serial.print(" UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes");
//Serial.print(" UID Value: ");
nfc1.PrintHex(uid, uidLength);
if (uidLength == 4)
{
// We probably have a Mifare Classic card ...
cardid = uid[0];
cardid <<= 8;
cardid |= uid[1];
cardid <<= 8;
cardid |= uid[2];
cardid <<= 8;
cardid |= uid[3];
Serial.print("Seems to be a Mifare Classic card #");
Serial.println(cardid);
BTLEserial.print(cardid);
}
Serial.println("");
}
并不是说该代码块会打印到串行监视器上:
似乎是 Mifare Classic 卡 #347161076
写入 BTLE:0x31 0x36 0x38 0x38 0x34
但是 BTLE 应用程序正在查看
16884
“作为卡片?
很明显,这是对由该BTLEserial.print()
方法处理的 uint32_t 上的一些奇怪的字节转换造成的。
当我找到 id 时,我在上面的 items 数组中最多存储了六个。我想通过蓝牙将整个阵列作为逗号分隔的字符串发送到我的设备。
请帮助将此 uint32_t 转换为可由 BTLE 处理的字符串或其他对象