大家好,又见面了,我是你们的朋友全栈君。
以前调试一直正常,最近重新使用新模块发现居然不能选卡,寻卡防冲撞都正常。一直折腾了两三天,最后更改复位延时直接解决问题。
/
//功 能:复位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;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126861.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...