完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ST25R3911B,使用 ST25RFAL001 和 NDEF 库 v1.0.4。我正在使用在 ndef.chm 文件中找到的读取示例。它检测到卡正常,但 ndefPollerNdefDetect() 返回 0x5(此时无法执行无效请求或请求的函数)。偶尔我会从 ndefPollerReadRawMessage() 获得相同的返回码,所以我知道我很接近了。
软件循环非常小。它在 HAL_Delay(1) 的无限循环中被调用,因此它每 1 毫秒运行一次。
我不知道如何调试它;卡正在返回数据,其他调用似乎有效(看到预期的返回值 0x9000)。如果我将这张完全相同的卡与 iPhone 读卡器一起使用,它会正确显示 NDEF TXT 记录(NFC 知名类型 0x01,记录类型 T (0x54),总共 19 个字节,原始值 0x02 0x65 0x6e 0x63 0x65 0x61 0x30 0x30 0x30 0x30 0x30 0x30 0x31 0x65 0x38)。 我该如何调试呢?我应该添加配置 RFAL 和 NDEF 库的平台头文件的相关位:
|
|
相关推荐
1个回答
|
|
有趣——我有 8 个相同的板(ST25R3911B + STM32L031,内部 HSI RC,32MHz SYSCLK,32MHz APB1/2)——其中两个会定期读取卡上的 19 字节 NDEF 文件,其他的都不会(相同的错误 0x5,主要在 ndefPollerNdefDetect() 中,但偶尔该函数返回时没有错误,但随后 ndefPollerReadRawMessage() 返回 0x5。
我认为这可能与电源有关,所以我用台式电源为东西供电——没有变化。然后我认为这可能是 SPI 时序的一些边缘情况,所以我尝试在断言 CS# 之后和否定 CS# 之前添加一些延迟 - 没有变化。然后我将 SPI 时钟 WAAAAAAY 放慢,一切开始可靠地工作。经过一些调整后,我从 SPI_BAUDRATEPRESCALER_2 变为 SPI_BAUDRATEPRESCALER_4,现在我可以可靠地读取所有板卡上的 NDEF 数据。 非常奇怪的是,我可以使用更快的 (16MHz) SPI 时钟可靠地与 ST25R3911B 通信,可靠地检测卡甚至检索它们的 ID (struct rfalNfcDevice.dev.nfca.nfcId1) 而没有任何问题,但尝试选择 NDEF 记录并在某些具有相同快速 SPI 时钟的板上检索它时断时续到 100% 失败的程度。降到 8MHz SPI 时钟可以解决问题,但仔细查看 ST25R3911B 数据表似乎表明这仍然太快(SCLK 周期最小为 167ns,即 6MHz)。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2635 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3610 浏览 6 评论
5988 浏览 21 评论
939浏览 4评论
1316浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
584浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1303浏览 3评论
1359浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 00:04 , Processed in 1.114994 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号