【发布时间】:2019-03-29 20:28:59
【问题描述】:
我正在尝试向 NFC 卡读取和写入无符号长类型值。
我正在使用 pn532 模块、MifareUltralight 卡和 Adafruit 库。 mifareultralight_WritePage 函数似乎只接受 4 字节大小的 uint8_t 类型数组。
所以我想把一个四字节长的类型的值一个一个的存入一个Uint8_t数组中,并将一个4字节长度的Uint8_t数组转换成一个长类型变量。
#include <Adafruit_PN532.h>
...
uint8_t writeBuffer[4] = { 18, 52, 86, 120 };
nfc.mifareultralight_WritePage(8, writeBuffer);
uint8_t readBuffer[4];
success = nfc.mifareultralight_ReadPage(i, &readBuffer[0]);
if (success) {
nfc.PrintHex(readBuffer, 4);
}
【问题讨论】:
-
你的问题是什么?小/大端顺序?
-
80C51 是大端,但您必须查看文档以了解 mifare 模块发送字节的顺序。
-
@bruno 我不熟悉 C。所以,我无法在 unsigned long 和 uint8_t [] 之间进行类型转换
-
@snark 我回答了
-
@AlainMerigot 8051 是一个 8 位的恐龙,所以它没有字节序。我相信它根据小端存储地址。英特尔是排名第一的小端十字军。