MFRC522问题[通俗易懂]

以前调试一直正常,最近重新使用新模块发现居然不能选卡,寻卡防冲撞都正常。一直折腾了两三天,最后更改复位延时直接解决问题。///////////////////////////////////////////////////////////////////////功能:复位RC522//返回:成功返回MI_OK///////////////////////////////…

大家好,又见面了,我是你们的朋友全栈君。

以前调试一直正常,最近重新使用新模块发现居然不能选卡,寻卡防冲撞都正常。一直折腾了两三天,最后更改复位延时直接解决问题。

/
//功    能:复位RC522
//返    回: 成功返回MI_OK
/
char PcdReset(void)
{

    //unsigned char i;
    MF522_RST(GPIO_PIN_SET);
    delay_us(10);/新添加的
        //__NOP();   //原来的              

    MF522_RST(GPIO_PIN_RESET);
    delay_us(10);
    //    __NOP();                   

    MF522_RST(GPIO_PIN_SET);
    delay_us(10);
    //    __NOP();               
    
    WriteRawRC(CommandReg,PCD_RESETPHASE);
    delay_us(10);
    //    __NOP();                
    
    MF522_State = 0;
    WriteRawRC(ModeReg,0x3D);         //和Mifare卡通讯,CRC初始值0x6363
    WriteRawRC(TReloadRegL,30);       //定时器的低8位数据,
    WriteRawRC(TReloadRegH,0);        //定时器的高8位数据,
    WriteRawRC(TModeReg,0x8D);        //定时器模式寄存器,定时器减值计数
    WriteRawRC(TPrescalerReg,0x3E);   //实际值是OXD3E,这部分主要是设置定时器寄存器,
   WriteRawRC(TxAutoReg,0x40);        //必须要,设置逻辑1,强制100%ASK调制?
    return MI_OK;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126861.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号