//Gen Templet2 :根据原始图像生成指纹特征2 vu8
GENT2[14]={13,0X01 ,0Xff,0xff,0xff,0xff,0x01,0,4,2,2,0x00,0x09}; //回送12个
//Search Finger :以CharBufferA或CharBufferB中的特征文件搜索整个或部分指纹库
vu8 SEAT[18]={17, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,8, 4,1,0,0, 0,0x65, 0x00,0x73}; //回送12个
//Merge Templet ;将CharBufferA与CharBufferB中的特征文件合并生成模板,结果存于ModelBuffer。
vu8 MERG[14]={12, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,3,5 , 0x00,0x09};//回送12个
//Store Templet :将ModelBuffer中的文件储存到flash指纹库中
vu8 STOR[16]={15, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,6,6,2, 0x00,0x00, 0x00,0x0f}; //回送12个
//DEL one templet
vu8 DELE_one[16]={16, 0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,7, 0x0c, 0x00,0x00, 0,1, 0x00,0x15};
//DEL templet ;清空指纹库
vu8 DELE_all[12]={12,0X01 ,0Xff,0xff,0xff,0xff, 0x01, 0,3, 0x0d,0x00,0x11};
//////////////////////////////////////宏定义------------结束////////////////////////////////////////////////////////
vu8 FifoNumber=0;
vu8 FIFO[MAX_NUMBER+1]={0};
/*********1毫秒延时程序**********/ void delay1ms(unsigned int t) { unsigned long int i,j; for(i=0;i vu8 UartRx[100],UartTx[100]={0x58}; vu16 RecCnt; vu16 RecTimeCount; vu8 UartRecInit=0,Uart_RecOk=0,UartFlag_RecTime=0; #define Mode_Get 0 #define Mode_See 1 vu8 Mode=Mode_See; void TxdByte(vu8 dat)//串口发送信息,通过查询方式发送一个字符 { //等待发送完毕,必须放在前面 while(USART_GetFlagStatus(USART2,USART_FLAG_TC) == RESET); //发送数据 USART_SendData(USART2,dat); } vu8 UartSendCnt=0; void UartSend(void)//CRC及自动加结束符 { vu8 i; USART_Cmd(USART1, ENABLE);//打开串口 for(i=0;i USART_SendData(USART1,(u8)UartTx[i]); } } void PutOK(void) { UartTx[0]='O'; UartTx[1]='K'; UartSendCnt=2; UartSend(); } void PutER(void) { UartTx[0]='E'; UartTx[1]='R'; UartSendCnt=2; UartSend(); } void TIM1_UP_IRQHandler(void) { if(TIM == TIM1) { if(TIM_GetITStatus(TIM, TIM_IT_Update) != RESET) //判断是否为 更新事件 标志位 { TIM_ClearITPendingBit(TIM, TIM_IT_Update); //清除 更新事件 标志 if(UartFlag_RecTime)//从接收第一个有效字节开始,进行一秒的倒计时,如果没收到完整的 //复位接收器,并发送一个字节的报错数据0x88. { if(RecTimeCount>0) RecTimeCount--; else { UartRecInit=0; UartFlag_RecTime=0;//禁止接收倒计时 Uart_RecOk=1; //ES=0; USART_Cmd(USART1, DISABLE); } } } } } 第五章 系统测试 测试时首先检测硬件电路的设计原理是否正确,能否达到预期效果以及实现方法是否简便;其次在焊接电路之后,认真检查电路焊接情况。这里采用分块调试的方法,分为显示模块电路,报警模块电路,读卡模块电路以及控制电路。在每个模块的调试过程中又采用了由局部到整体,由简单到复杂的调试方法。先测试单片机控制模块及其下载电路是否正常工作,然后测试显示模块能否正常工作,接着测试报警模块的电路、读卡模块的电路,最后再把各个模块连成整体。 开机后,作品状态如图5-1所示。 图5-1 作品实物