OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5465|回复: 2

关于RFID的S50卡的写数据

[复制链接]

24

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2015-11-4
在线时间
124 小时
发表于 2016-1-8 16:25:13 | 显示全部楼层 |阅读模式
5金钱
u8 w1[8]={1,2,3,4};
u8 r1[8];
while(1)
   {  
   status = PcdRequest(PICC_REQALL,CT);/*尋卡*/
   if(status==MI_OK)       //尋卡成功
   {
     status=MI_ERR;
     status = PcdAnticoll(SN); /*防冲撞*/   
   }
    if (status==MI_OK)      //防衝撞成功
    {
     status=MI_ERR;  
     ShowID(90,140,SN,BLUE,WHITE); //在液晶屏上显示卡的ID号
     status =PcdSelect(SN);
    }
    if(status==MI_OK)//選卡成功
   {
    status=MI_ERR;
    status =PcdAuthState(0x60,0x09,KEY,SN);   
   }
    if(status==MI_OK)//驗證成功
    {
     status=MI_ERR;
     status=PcdWrite(0x08,w1);
     PcdRead(0x08,r1);

     ShowID(10,500,r1,BLUE,WHITE); //在液晶屏上显示卡的ID号
    }
   if(status==MI_OK)//讀卡成功
    {
     status=MI_ERR;
    }
上面程序我想能把1234读出来,可是结果是4849485048514852。如果我不加status=PcdWrite(0x08,w1);结果是4848484848484848,这个4848....是卡一开始已经设定好的值吗?
如果地址改为status=PcdWrite(0x04,w1);结果还为4848....,可是值却不是4849485048514852,为什么改变地址却不能进行写操作?
这程序为什么是4849485048514852,是把4848....把1~4相加得到,而不是直接把值改为1234呢?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-1-10 23:58:48 | 显示全部楼层
回复

使用道具 举报

6

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2013-1-11
在线时间
107 小时
发表于 2016-1-25 15:43:39 | 显示全部楼层
应该是原有数据。你写入数据数据的长度不够。要16个字节。先验证是否读写成功在进行下一次读写。
为啥还要考试啊。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 03:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表