找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5173|回复: 7
收起左侧

RC522读卡的序列号时序列号会有错误

[复制链接]
ID:233090 发表于 2017-9-17 18:36 | 显示全部楼层 |阅读模式
20黑币
前面是卡的类型,后面4位是卡号。现在就是卡号是会有问题,有几位会跳1.有没有大神可以救救小弟我。已经被这个问题困扰两天了。。。一开始以为是波特率的问题但是改了很多次都不对。。。。
下面是源码。。也是吧里的大神的,
#include<reg52.h>
#include<main.h>
#include<mfrc522.h>
unsigned char UID[4],Temp[4],ceshi[9];

void feeb(){ //寻卡成功响应函数
//        ff=0;
//        delay_10ms(1);
        ff=1;
        delay_10ms(1);
}

void Auto_Reader(void){
  while(1){
    if(PcdRequest(0x52,Temp)==MI_OK){  //寻卡,成功后Temp数组为卡类型
      if(PcdAnticoll(UID)==MI_OK){          //防冲突,UID数组数据为卡序列号
           CALL_isr_UART();                          //开串口中断将UID数组前四个字节上传到串口调试助手
                   feeb();                    //调用蜂鸣器提示           
      }
    }else ff = 0;//寻卡失败
  }
}

void InitializeSystem(){
        SCON=0X50;                        //设置为工作方式1
        TMOD=0X21;                        //设置计数器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;                    //计数器初始值设置,注意波特率是4800的
        TL1=0XF3;
        REN = 1;
        ES=1;                                                //打开接收中断
        EA=1;                                                //打开总中断
        TR1=1;               
        ff = 0;
    PcdReset();
    PcdAntennaOff();
    PcdAntennaOn();  
        M500PcdConfigISOType( 'A' );
}

void isr_UART(void) interrupt 4 using 1{
    unsigned char i;
       
    for(i=0;i<4;i++)
         {
                   ceshi[i]=Temp[i];       
            ceshi[i+4]=UID[i];
                }
        if(TI){
                TI=0;
                for(i=0;i<8;i++){
                               
                SBUF=ceshi[i];
                        while(!TI);
                        TI=0;                       
                }
                REN=1;
        }
}

void main( ){   
    InitializeSystem( );
        Auto_Reader();
}



捕获.PNG
回复

使用道具 举报

ID:233090 发表于 2017-9-18 18:17 | 显示全部楼层
有没有大神来帮帮忙啊
回复

使用道具 举报

ID:211606 发表于 2017-9-20 11:13 | 显示全部楼层
不是STM32 芯片控制 读取
回复

使用道具 举报

ID:211606 发表于 2017-9-20 11:14 | 显示全部楼层
我是 ARM 芯片 STM32 读取
回复

使用道具 举报

ID:233090 发表于 2017-9-20 18:13 | 显示全部楼层
51的,不是stm32的。而且我stm32的程序也是有的。。
回复

使用道具 举报

ID:233090 发表于 2017-9-20 18:21 | 显示全部楼层
我现在都怀疑是不是板子坏了。,,,
回复

使用道具 举报

ID:234516 发表于 2017-9-20 22:21 | 显示全部楼层
1、单片机晶振是不是11.0592等能够产生准确波特率;
回复

使用道具 举报

ID:233090 发表于 2017-9-21 20:20 | 显示全部楼层
51    11.0592M 晶振。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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