rc52实现的部分代码
//******************************************************************/
//功能:讀出RC522寄存器
//參數說明:address[IN]:寄存器地址
//返回:讀出的值
//******************************************************************/
unsigned char ReadRawRC(unsigned char Address)
{
unsigned char i, ucAddr ;
unsigned char ucResult=0 ;
NSS522_0 ;
SCK522_0 ;
ucAddr = ((Address<<1)&0x7E)|0x80 ;
for(i=8;i>0;i–)
{
if((ucAddr&0x80)==0x80)
SI522_1 ;
else
SI522_0 ;
SCK522_1 ;
ucAddr <<= 1 ;
SCK522_0 ;
}
for(i=8;i>0;i–)
{
SCK522_1 ;
ucResult <<=1 ;
ucResult |= SO522 ;
SCK522_0 ;
}
SCK522_0 ;
NSS522_1 ;
return ucResult ;
}
//******************************************************************/
//功能:寫RC522寄存器
//參數說明:address[IN]:寄存器地址
// value 要寫入的值
//******************************************************************/
void WriteRawRC(unsigned char Address, unsigned char value)
{
unsigned char ucAddr ;
}
//******************************************************************/
//功能:置RC522寄存器位
//參數說明:reg[IN]:寄存器地址
// mask[IN]:置位值
//******************************************************************/
void SetBitMask(unsigned char reg,unsigned char mask)
{
char tmp = 0x0 ;
tmp = ReadRawRC(reg)| mask;
WriteRawRC(reg,tmp | mask); // set bit mask
}
//******************************************************************/
//功能:清RC522寄存器位
//參數說明:reg[IN]:寄存器地址
// mask[IN]:清位值
//******************************************************************/
void ClearBitMask(unsigned char reg,unsigned char mask)
{
char tmp = 0x0 ;
tmp = ReadRawRC(reg)&(~mask);
WriteRawRC(reg, tmp) ; // clear bit mask
}
//******************************************************************/
//功能:復位RC522
//返回:成功返回MI_OK
//******************************************************************/
char PcdReset()
{
RF_POWER_ON ;
RST522_1 ;
DelayUs2x(2);//DelayUs2x(60) ;
RST522_0 ;
DelayUs2x(2);//DelayUs2x(60) ;
RST522_1 ;
DelayUs2x(2);//DelayUs2x(60) ;
WriteRawRC(CommandReg,PCD_RESETPHASE);
DelayUs2x(2);//DelayUs2x(60) ;
WriteRawRC(ModeReg,0x3D) ;
WriteRawRC(TReloadRegL,30) ;
WriteRawRC(TReloadRegH,0) ;
WriteRawRC(TModeReg,0x8D) ;
WriteRawRC(TPrescalerReg,0x3E) ;
// WriteRawRC(TxASKReg,0x40) ; // FOR DEBUG AND TEST
return MI_OK ;
}
總結
以上是生活随笔為你收集整理的rc52实现的部分代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【工程/物理光学(五)——激光技术】
- 下一篇: 蓝桥杯数字三角形