📄 main.c
字号:
#define main_GLOBALS
#include "config.h"
static void main_INIT(void);
uint8 DataBfr[16];
uint8 Card_Snr[4];
/*
*********************************************************************************************************
** 函数名称:main()
** 函数功能:用于测试ZLG500C模块使用函数库。
** 使用说明:改变Test_Code的值,分别测试
** 协议控制类函数----Test_Code = 0
** 设备控制类函数----Test_Code = 1
** TypeA命令函数 ----Test_Code = 2
*********************************************************************************************************
*/
int main(void)
{
uint8 Test_Code = 2;
main_INIT();
SlvAddr = 1;
while(1)
{
/* 协议控制类 */
if(Test_Code == 0)
{
GetDvcSnr(DataBfr);
SetSlvAddr(1,DataBfr);
GetSlvAddr(&SlvAddr,DataBfr);
BaudNum = 7;
SetBaud(BaudNum);
DataBfr[0] = 0;
DataBfr[1] = 0;
FindSlv(1,16,DataBfr,DataBfr+1);
}
/* 设备控制类 */
if(Test_Code == 1)
{
GetDvcInfo(DataBfr);
PCDClose();
PCDConfig();
DataBfr[0] = 0xff;
DataBfr[1] = 0xff;
DataBfr[2] = 0xff;
DataBfr[3] = 0xff;
DataBfr[4] = 0xff;
DataBfr[5] = 0xff;
PCDLoadKey(KEYA,0,DataBfr);
PCDWriteReg(0x11,0x5b);
PCDReadReg(0x12,DataBfr);
DvcReadIO(DataBfr);
DvcClearIO(0x03,50);
DvcSetIO(0x0f,0);
DvcSurgeIO(0x03,0x00,0x03,50,50,25,15,3);
DvcSetAutoDctct(ISO14443A,REQALL,0x03,0,0);
}
/* TypeA命令 */
if(Test_Code == 2)
{
if(PiccRequest(REQSTD,DataBfr)!=OK) continue;
if(PiccAnticoll(SELCODE1,0,Card_Snr)!=OK) continue;
if(PiccSelect(SELCODE1,Card_Snr,DataBfr)!=OK) continue;
if(PiccAuthE2(KEYA,Card_Snr,0,4)!=OK) continue;
if(PiccRead(4,DataBfr)!=OK) continue;
DataBfr[0] = 0x10; DataBfr[4] = 0xef; DataBfr[8] = 0x10;
DataBfr[1] = 0x0; DataBfr[5] = 0xff; DataBfr[9] = 0x0;
DataBfr[2] = 0x0; DataBfr[6] = 0xff; DataBfr[10] = 0x0;
DataBfr[3] = 0x0; DataBfr[7] = 0xff; DataBfr[11] = 0x0;
DataBfr[12] = 0x04; DataBfr[13] = 0xfb; DataBfr[14] = 0x04; DataBfr[15] = 0xfb;
if(PiccWrite(4,DataBfr)!=OK) continue;
DataBfr[0] = 0x0;
if(PiccRead(4,DataBfr)!=OK) continue;
DataBfr[0] = 0x01;
DataBfr[1] = 0x0;
DataBfr[2] = 0x0;
DataBfr[3] = 0x0;
if(PiccValue(DECREMENT,4,DataBfr,5)!=OK) continue;
if(PiccValue(INCREMENT,4,DataBfr,6)!=OK) continue;
if(PiccRead(5,DataBfr)!=OK) continue;
if(PiccRead(6,DataBfr)!=OK) continue;
PiccHalt();
DvcSurgeIO(0x03,0x00,0x03,50,50,25,15,3);
}
}
}
/*
*********************************************************************************************************
** 函数名称:main_INIT()
** 函数功能:初始化:使能IRQ中断、超时值设置、串口0初始化。
*********************************************************************************************************
*/
void main_INIT()
{
IRQEnable(); //使能IRQ中断
/* 单片机内部资源初始化 */
Timer1_timeout_init(Delay_5ms);
UART0_Init(); //串行口
}
void memcopy(uint8 *DBfr,uint8 *SBfr,uint8 Len)
{
uint8 i;
for(i=0;i<Len;i++)
{
DBfr[i] = SBfr[i];
}
}
#if memcomp_en
int8 memcomp(uint8 *DBfr,uint8 *SBfr,uint8 Len)
{
uint8 i;
for(i=0;i<Len;i++)
{
if(DBfr[i] > SBfr[i])
return 1;
if(DBfr[i] < SBfr[i])
return -1;
}
return 0;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -