大家好,又见面了,我是你们的朋友全栈君。
以前调试一直正常,最近重新使用新模块发现居然不能选卡,寻卡防冲撞都正常。一直折腾了两三天,最后更改复位延时直接解决问题。
/ //功 能:复位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.cn/126861.html原文链接:https://javaforall.cn