gpt4 book ai didi

c++ - MFRC522 PICC responded with NAK (Porting MFRC522 arduino library[C++] to [C])

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:52:04 24 4
gpt4 key购买 nike

先介绍一下

我正在尝试制作 MFRC522 library对于 Arduino 在用 C 编程的 ATmega328 上工作(我首先使用“普通” Controller ,使其在以后的状态下在树莓派上工作)。

我从库中复制了.h和.cpp到我自己的项目中,并将.c重命名为.cpp。删除 .h 文件中的类后,是时候处理 .c 文件了。我将所有“byte”语句替换为“uint8_t”,将“Serial.print”替换为 printf,并对 GPIO 和 SPI 进行了更改。

问题。在一些小错误之后,我终于从 key 卡上获得了数据。不管它看起来如何工作,我从卡中读取第 58 行时出错。错误是:

MIFARE_READ() failed: A MIFARE PICC responded with NAK.

我在SPI write and read中添加了打印语句,发现了以下区别(左边是[C]版本,右边是Arduino版本):(因为我的名声,图片可以在我在代码部分提到的 BitBucket)

代码代码很长,但我做到了 available on BitBucket

我希望有人能指出我在哪里看(一些 [C++] >> [C] 不同的解释),因为我不知道在哪里看。

桑德

最佳答案

读写前需要运行PCD_Authenticate函数。链接的 github 库中有一些预编程 key 可以验证卡片。我在尝试写入卡时得到这个,因为我使用的是 KEY_B 而不是 KEY_A。您可以在该 GitHub 页面上提供的示例中看到此身份验证。它应该看起来像这样。

status = (MFRC522::StatusCode) mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, trailerBlock, &key, &(mfrc522.uid));

据我所知,NAK 仅仅意味着使用了错误的 key 或者可能没有使用 key 。

关于c++ - MFRC522 PICC responded with NAK (Porting MFRC522 arduino library[C++] to [C]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26719509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com