ST意法半导体
直播中

李俊

7年用户 1313经验值
私信 关注
[问答]

是否可以设置密码来保护NFC设备ST25DV04K的写入呢

我有一个 ST25DV04K,我使用连接到 NUCLEO L476RG 电子卡的 NFC 读取器 NFC06A1 读取/写入它。
为了读写,我使用“ X-CUBE-NFC6  ”库(版本 1.1.0)
我想知道是否可以设置密码来保护 NFC 设备 ST25DV04K 的写入。
在网络链接上找到的库中,我没有找到允许我设置它的功能。
你能给我一些例子吗?
谢谢


回帖(1)

付华一

2022-12-19 10:43:48
来自 rfal_st25xv.c 的 rfalST25xVPollerPresentPassword API 可用于密码管理(即 B3h Present Password 命令)。不幸的是,缺少 rfalST25xVPollerWritePassword API(B1h 写密码命令)
为了拥有这个库的最新版本,我建议使用ST25 嵌入式 NFC 库:你会从 X-CUBE-NFC6 包中找到演示以及一些新的演示,所有这些都基于最新的 ST25 阅读器库(又名拉福尔)。有关 rfalST25xVPollerPresentPassword 的代码示例,请参阅 ST25 嵌入式 NFC 库中 FTM 演示中的 st25r_st25dv-i2c_ftm.c。
对于 rfalST25xVPollerWritePassword,我建议在 rfal_st25xv.c(以及 rfal_st25xv.h 中的相关原型)中添加以下代码


  • /*******************************************************************************/
  • ReturnCode rfalST25xVPollerWritePassword( uint8_t flags, const uint8_t* uid, uint8_t pwdNum, const uint8_t *pwd,  uint8_t pwdLen)
  • {
  •     uint8_t            data[RFAL_ST25xV_PWDNUM_LEN + RFAL_ST25xV_PWD_LEN];
  •     uint8_t            dataLen;
  •     uint16_t           rcvLen;
  •     rfalNfcvGenericRes res;
  •    
  •     if( (pwdLen > RFAL_ST25xV_PWD_LEN) || (pwd == NULL) )
  •     {
  •         return ERR_PARAM;
  •     }
  •    
  •     dataLen = 0U;
  •     data[dataLen++] = pwdNum;
  •     if( pwdLen > 0U )
  •     {
  •         ST_MEMCPY(&data[dataLen], pwd, pwdLen);
  •     }
  •     dataLen += pwdLen;
  •    
  •     return rfalNfcvPollerTransceiveReq( RFAL_NFCV_CMD_WRITE_PASSWORD, flags, RFAL_NFCV_ST_IC_MFG_CODE, uid, data, dataLen, (uint8_t*)&res, sizeof(rfalNfcvGenericRes), &rcvLen );
  •    
  • }

让我知道您这边是否正常工作。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分