1
0
mirror of synced 2024-11-27 17:11:01 +01:00

变更定义位置;修复自定义 HW 导致的读取问题;32u4改用spi模式,修复felica读取问题。

This commit is contained in:
Sucareto 2022-04-23 16:55:04 +08:00
parent 872a6d34fa
commit fb0394dcee
2 changed files with 41 additions and 14 deletions

View File

@ -7,14 +7,13 @@
### 使用方法: ### 使用方法:
1. 按照 [PN532](https://github.com/elechouse/PN532) 的提示安装库 1. 按照 [PN532](https://github.com/elechouse/PN532) 的提示安装库
2. Arduino 和 PN532 接好 VCCGNDSDASCL 2. 按照使用方式,在 Arduino 和 PN532 接好连接线I2C或SPI并调整 PN532 上的拨码开关
3. PN532 的拨码开关按照 PCB 上丝印的指示,调整到 I2C 模式 3. 接上 WS2812B 灯条(可选)
4. 接上 WS2812B 灯条(可选) 4. 上传 [ReaderTest](tools/ReaderTest/ReaderTest.ino) 测试硬件是否工作正常
5. 上传 [ReaderTest](tools/ReaderTest/ReaderTest.ino) 测试硬件是否工作正常 5. 若读卡正常,可按照支持列表打开设备管理器设置 COM 端口号
6. 若读卡正常,可按照支持列表打开设备管理器设置 COM 端口号 6. 按照游戏的波特率设置代码的`high_baudrate`选项,`115200`是`true``38400`是`false`
7. 按照游戏的波特率设置代码的`high_baudrate`选项 7. 上传程序打开游戏测试
8. 上传程序打开游戏测试 8. 安装 [MifareClassicTool](https://github.com/ikarus23/MifareClassicTool),修改 [Aime 卡示例](doc/aime示例.mct) 后写入空白 MIFARE UID/CUID 卡
9. 安装 [MifareClassicTool](https://github.com/ikarus23/MifareClassicTool),修改 [Aime 卡示例](doc/aime示例.mct) 后写入空白 MIFARE UID/CUID 卡
某些 Arduino 可能需要在游戏主程序连接前给串口以正确的波特率发送 DTR/RTS需要先打开一次 Arduino 串口监视器再启动主程序。 某些 Arduino 可能需要在游戏主程序连接前给串口以正确的波特率发送 DTR/RTS需要先打开一次 Arduino 串口监视器再启动主程序。
如果是 SDBT可以在启动前运行一次 [DTR-RTS.exe](tools/DTR-RTS.exe) 以向 COM1 和 COM12 发送DTR/RTS。 如果是 SDBT可以在启动前运行一次 [DTR-RTS.exe](tools/DTR-RTS.exe) 以向 COM1 和 COM12 发送DTR/RTS。

40
cmd.h
View File

@ -2,12 +2,40 @@
#define NUM_LEDS 6 #define NUM_LEDS 6
CRGB leds[NUM_LEDS]; CRGB leds[NUM_LEDS];
#if defined(__AVR_ATmega32U4__) || defined(ARDUINO_SAMD_ZERO)
#pragma message "当前的开发板是 ATmega32U4 或 SAMD_ZERO"
#define SerialDevice SerialUSB
#define LED_PIN A3
#define PN532_SPI_SS 10 //32U4 不使用 SPI 时,执行 ReadWithoutEncryption 会失败
#elif defined(ARDUINO_ESP8266_NODEMCU_ESP12E)
#pragma message "当前的开发板是 NODEMCU_ESP12E"
#define SerialDevice Serial
#define LED_PIN D5
//#define SwitchBaudPIN D4 //修改波特率按钮
#elif defined(ARDUINO_NodeMCU_32S)
#pragma message "当前的开发板是 NodeMCU_32S"
#define SerialDevice Serial
#define LED_PIN 13
#else
#error "未经测试的开发板,请检查串口和阵脚定义"
#endif
#if defined(PN532_SPI_SS)
#pragma message "使用 SPI 连接 PN532"
#include <SPI.h>
#include <PN532_SPI.h>
PN532_SPI pn532(SPI, PN532_SPI_SS);
#else
#include <Wire.h> #include <Wire.h>
#include <PN532_I2C.h> #include <PN532_I2C.h>
#include <PN532.h> PN532_I2C pn532(Wire);
#endif
PN532_I2C pn532i2c(Wire); #include "PN532.h"
PN532 nfc(pn532i2c); PN532 nfc(pn532);
uint8_t AimeKey[6], BanaKey[6]; uint8_t AimeKey[6], BanaKey[6];
@ -153,15 +181,15 @@ static void sg_nfc_cmd_reset() { //重置读卡器
static void sg_nfc_cmd_get_fw_version() { static void sg_nfc_cmd_get_fw_version() {
sg_res_init(23); sg_res_init(23);
// memcpy(res.version, "TN32MSEC003S F/W Ver1.2", 23); // memcpy(res.version, "TN32MSEC003S F/W Ver1.2", 23);
memcpy(res.version, "*SCRT_Reader F/W Ver1.2", 23); memcpy(res.version, "-> Sucareto Aime Reader", 23);
// sg_res_init(1); // sg_res_init(1);
// memset(res.version, 0x94, 1); // memset(res.version, 0x94, 1);
} }
static void sg_nfc_cmd_get_hw_version() { static void sg_nfc_cmd_get_hw_version() {
sg_res_init(23); sg_res_init(23);
// memcpy(res.version, "TN32MSEC003S H/W Ver3.0", 23); memcpy(res.version, "TN32MSEC003S H/W Ver3.0", 23);
memcpy(res.version, "*SCRT_Reader H/W Ver3.0", 23); // memcpy(res.version, "-> Sucareto Aime Reader", 23);
// sg_res_init(9); // sg_res_init(9);
// memcpy(res.version, "837-15396", 9); // memcpy(res.version, "837-15396", 9);
} }