📄 rc500rst.c
字号:
#include <reg52.h>
#include "rc500.h"
/*****************************************************************************
* 复位并初始化RC500
*注意:RC500上电后应延时500ms才能可靠初始化
******************************************************************************/
char PcdReset()
{
char status=MI_OK;
char n=0;
uint i=0x4000;
RC500_CE=0;
RC500_RST=1;
DelayMs(100);
RC500_RST=0;
while(i!=0&&n!=0x3f)
{
n=ReadRawRC(RegCommand);
i--;
}
while(i!=0&&n==0x3f)
{
n=ReadRawRC(RegCommand);
i--;
}
if(i!=0)
{
WriteRawRC(RegPage,0x80);
n=0x80;
while((i!=0)&&(n&0x80))
{
n=ReadRawRC(RegCommand);
i--;
}
if(i==0||(n&0xff))
{
status=MI_RESETERR;
}
}
else
{
status=MI_RESETERR;
}
if(status==MI_OK)
{
WriteRC(RegClockQControl,0x0);
WriteRC(RegClockQControl,0x40);
DelayUs(100);
ClearBitMask(RegClockQControl,0x40);
WriteRC(RegBitPhase,0xad);
WriteRC(RegRxThreshold,0xff);
WriteRC(RegRxControl2,01);
WriteRC(RegFIFOLevel,0x1a);
WriteRC(RegTimerControl,0x02);
WriteRC(RegIRqPinConfig,0x02);
WriteRC(RegTxControl,0x5b);
}
return status;
}
/*****************************************************************************
* 延时
*****************************************************************************/
void DelayMS(uchar j)
{
uchar i,n;
for(i=0;i<j;i++)
{ for(n=0;n<230;n++);
}
}
void DelayUs(uchar j)
{
uchar i,n;
n=j/5;
for(i=0;i<n;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -