PN532 NFC读卡器串口通信

概述

PN532是一款由NXP公司生产的NFC(近场通信)控制器,它支持多种NFC通信协议,如ISO/IEC 14443 Type A和B、FeliCa、NFC-DEP等。PN532广泛应用于RFID标签读取、NFC支付、门禁系统等场景。本教程将介绍如何通过串口与PN532进行通信,实现NFC标签的读取。

硬件需求

  • PN532 NFC读卡器模块
  • 微控制器(如Arduino)
  • 跳线若干
  • USB转TTL串口模块(如果使用Arduino)

软件需求

  • Arduino IDE
  • PN532库(可在Arduino IDE的库管理器中搜索并安装)

连接方式

  1. 将PN532模块的TXD引脚连接到微控制器的RXD引脚。
  2. 将PN532模块的RXD引脚连接到微控制器的TXD引脚。
  3. 将PN532模块的GND引脚连接到微控制器的GND引脚。
  4. 将PN532模块的VCC引脚连接到微控制器的5V或3.3V(根据模块规格)。

代码示例

以下是一个简单的Arduino代码示例,用于读取NFC标签的信息:

#include <Wire.h>
#include <PN532.h>

PN532 nfc(SDA, SCK); // 使用软件SPI

void setup() {
  Serial.begin(115200);
  Serial.println("Hello!");

  nfc.begin();

  uint32_t versiondata = nfc.getFirmwareVersion();
  if (!versiondata) {
    Serial.print("Didn't find PN53x board");
    while (1); // 停止
  }

  Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX); 
  Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC); 
  Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
  
  // 确保PN532处于SAM模式
  nfc.SAMConfig();
}

void loop() {
  uint8_t success;
  uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // 用于存储标签的UID
  uint8_t uidLength;                        // 标签的UID长度

  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
  
  if (success) {
    Serial.println("Found a card!");
    Serial.print("UID Length: "); Serial.print(uidLength, DEC); Serial.println(" bytes");
    Serial.print("UID Value: ");
    for (uint8_t i=0; i < uidLength; i++) {
      Serial.print(" 0x"); Serial.print(uid[i], HEX);
    }
    Serial.println("");
  } else {
    // PN532没有检测到卡片
    Serial.println("No card detected.");
  }
  delay(1000); // 等待一秒钟再次检测
}

代码解释

  1. 首先,包含必要的库文件,并初始化PN532对象。
  2. setup()函数中,初始化串口通信,并检查PN532模块是否正确连接。
  3. 使用nfc.SAMConfig()函数配置PN532的被动目标检测模式。
  4. loop()函数中,不断检测是否有NFC标签靠近读卡器。
  5. 如果检测到标签,读取标签的UID,并将其打印到串口监视器。

注意事项

  • 确保PN532模块的电源和接地连接正确。
  • 根据你的微控制器和PN532模块的连接方式,可能需要调整SPI引脚连接。
  • 在实际应用中,可能需要根据具体的NFC标签类型和协议进行相应的调整。

通过上述步骤和代码示例,你应该能够成功地通过串口与PN532 NFC读卡器进行通信,并读取NFC标签的信息。

✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进

❤欢迎关注我的知乎:对error视而不见

代码获取、问题探讨及文章转载可私信。

☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。

🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇

点击领取更多详细资料

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值