我正在做的是在存在 1 或 2 个
NFCA 标签的情况下执行防碰撞。
当只用一个标签进行防碰撞时,该函数从不报错,总是正确地找到 1 个标签。
使用两个标签执行防碰撞时:
- 有两个 NFCA 标签的组合,它们总是完美地工作 (ERR_NONE) 并找到所有标签。
- 有两个 NFCA 标签的组合总是失败。
当组合总是失败时:
- 如果我针对大小 (-Os) 进行了优化,错误总是 ERR_FRAMING(与 PDe 在同一位置),如果我再次调用防碰撞功能,它只会找到 1 个标签(但有两个!)。
- 如果我优化了大多数(-O3)错误总是ERR_INCOMPLETE_BYTE,如果我再次调用防碰撞函数,错误是ERR_tiMEOUT,如果我再次调用它,ERR_INCOMPLETE_BYTE,......
- 当只有一个标签存在时,所有标签都可以正常工作。

---------------------------------------------- ---------------------------------------------- ------------------------------
尤利西斯·赫尼奥索斯
打开 Ulysses HERNIOSUS 预览
(ST员工)
嗨 EBadi.2,
我建议您为这种行为创建一个单独的票证。我有一些想法,但还需要更多信息,您可以将这些信息张贴在这张单独的票证中:
- 你用哪个参数调用哪个函数?
- 你在哪些帧观察到这种行为?REQA/SENS_REQ 或防碰撞/SDD_REQ 或 SELECT/SEL_REQ?我们的冲突解决函数旨在处理多个标签。
---------------------------------------------- ---------------------------------------------- ------------------------------
err = rfalNfcaPollerInitialize(); /* 为 NFC-A 初始化 */
错误 = rfalFieldOnAndStartGT(); /* 如果还没有打开 Field 并启动 GT 定时器
err = rfalNfcaPollerTechnologyDetection(RFAL_COMPLIANCE_MODE_NFC, &sensRes);
err = rfalNfcaPollerInitialize();
错误 = rfalFieldOnAndStartGT(); /* 如果还没有打开 Field 并启动 GT
err = rfalNfcaPollerFullCollisionResolution( RFAL_COMPLIANCE_MODE_NFC, (MAX_TAGS_TO_READ), nfcaDevList, &totalTags );
我看到的错误是在最后一次通话中,这是您要问的吗?
在哪里可以找到这些:REQA/SENS_REQ 或 anticollision/SDD_REQ 或 SELECT/SEL_REQ?