我有一个arduino草图,它会侦听RFID标签,并获取他们的uid并将它们存储在uint32_t
这是一个带有adaFruit BTLE和adafruit NFC/RFID Shield
的arduino_uno项目阵列的启动方式如下:
uint32_t items[]= { 0,0,0,0,0,0};
然后在我的循环();
我发现了一个像这样的身份:
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
&#34;作为cardid?
很明显,这是由BTLEserial.print()
方法处理的uint32_tbeing上的一些奇怪的字节转换。
当我找到id时,我将在上面的items数组中存储多达六个。我想通过蓝牙将整个阵列发送到我的设备,作为逗号分隔的字符串。
请帮助将此uint32_t转换为可由BTLE处理的字符串或其他对象
答案 0 :(得分:0)
我通过使用这种方法弄明白了:
int radix =10;
char buffer[33];
char* getStringForUI32_T(uint32_t value){
return ultoa(value,buffer,radix);
}