这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 我的NFC学习之旅(10)---自动增减处理中值块数据的形式以及加减计算结果的变

共3条 1/1 1 跳转至

我的NFC学习之旅(10)---自动增减处理中值块数据的形式以及加减计算结果的变化规律

专家
2026-07-16 16:01:16     打赏

前面的实验中,使用Arduino方式,只在递减方式下获得了成功,本次实验就以递减方式继续尝试和值块数据有关的测试。前面的测试中值块中最后的数据为:

1、块地址

2、块地址取反

3、块地址

4、块地址取反

接下我扔回到以前的那种方式:

1、0

2、0

3、0

4、块地址

其实根据前面的测试发现,在递减处理中,改变的数据是从块中的第0个数据开始的,因此块数据中偏移位置0~3的数据被我就改成以下形式,

8块数据:00 01 00 00

9块数据:00 00 01 00

9块数据:00 00 00 01

目的是测试减处理中的借位情况

整体数据(16进制):

8块:00 01 00 00 FF FE FF FF 00 01 00 00 00 00 00 08

9块:00 00 01 00 FF FF FE FF 00 00 01 00 00 00 00 09

9块:00 00 00 01 FF FF FF FE 00 00 00 01 00 00 00 0A

图片1.png

测试效果:

图片2.png

 没通过(这里估计原因是addValue先被执行,而块地址是4,不在地2扇区的缘故),把最后四位再改回去测试,依旧失败。

然后把加减处理的代码再改回以前能部分成功的,变成了这样,

图片3.png

 再把最后四位改成“00 00 00 地址”的样子测试,

测试表明,快中的第四部分数据作为值块使用时不是随意可以设置的。接下来,第四部分的数据我不用块地址,而是用其他数据,形式上为

x、x反、x、x反、

方式,再次测试:

测试成功(注,此处已经修改addValue(4, 2) 为addValue(block, 2))。

接下来对第8块,使用下面数据测试:

{0x00, 0x01, 0x00, 0x00, 0xFF, 0xFE, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x00, 0xFF, 0, 0xF0, 0x0F};

就是说最后两组数据不同,但做了取反处理,

0xFF  -  0

0xF0  -  0x0F

测试依旧失败。

综合本次实验说明:

1、加减处理中,数据是以偏移0 - 偏移3位置的数据整体处理,整个数据相当于无符号Long型数据(16进制表达为:Byte3、 Byte2、 Byte1、 Byte0),在扇区的块中的排列为(按照偏移0 ~ 偏移3形式存放):

Byte0, Byte1, Byte2, Byte3

的形式保存的。

2、偏移地址12 - 15四个位置的数据,必须是

X,X反,Y,Y反

形式,X和Y是否相同,不重要。

 接下来我测试加减溢出时是什么样子(0减,最大值加1)

显然出现了溢出了,依旧会执行计算,结果与借位和溢出后的数据是一样的,数据会在0到0xFF FF FF FF之间循环。

 

 





关键词: 懒猫的学习笔记     NFC    

专家
2026-07-17 06:59:27     打赏
2楼

谢谢分享


工程师
2026-07-17 09:23:20     打赏
3楼

刷一次卡,减少一次次数。


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]