AS608指紋模塊資料包
0.jpg (33.29 KB, 下載次數: 52)
下載附件
2018-4-23 03:58 上傳
stm32源程序:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "usart2.h"
- #include "AS608.h"
- #include "timer.h"
- #include "oled.h"
- #define usart2_baund 57600 //
- SysPara AS608Para; //
- u16 ValidN; //
- void Add_FR(void); //添加指紋
- void Del_FR(void); //刪除指紋
- void press_FR(void);//比對指紋
- int main(void)
- {
- u8 ensure;
- u8 key_num;
- char *str;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
- delay_init(); //初始化延時函數
- uart_init(115200); //初始化串口1波特率為115200,用于支持USMART
- usart2_init(usart2_baund);//初始化串口2,用于與指紋模塊通訊
- PS_StaGPIO_Init(); //初始化FR讀狀態引腳
- OLED_Init(); //OLED初始化 //初始化顯示
- OLED_ShowStr(0,0,(unsigned char*)" FINGERPRINT ID ",2);
- OLED_ShowStr(0,2,(unsigned char*)" ",2);
- OLED_ShowStr(0,4,(unsigned char*)" ",2);
- OLED_ShowStr(0,6,(unsigned char*)" ",2);
- //與指紋模塊握手
- while(PS_HandShake(&AS608Addr))
- {
- OLED_ShowStr(0,2,(unsigned char*)" ShakHands....",2);
- }
- //握手通過
- OLED_ShowStr(0,2,(unsigned char*)" Ready To Work ",2);
- delay_ms(100);
- while(1)
- {
- press_FR();
- //添加指紋
- if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)==0)
- {
- delay_ms(10);
- if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)==0)
- {
- //setup=setup+2000;
- Add_FR();
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- }
- }
- //對比指紋
- if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==0)
- {
- delay_ms(10);
- if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==0)
- {
- Del_FR();
-
- OLED_ShowStr(0,4,(unsigned char*)" FUN:DEL FRIGER ",2);
- }
- }
- }
- }
- void ShowErrMessage(u8 ensure)
- {
- }
- void Add_FR(void)
- {
- u8 i=0,ensure ,processnum=0;
- u16 ID;
- while(1)
- {
- switch (processnum)
- {
- case 0:
- i++;
-
- OLED_ShowStr(0,6,(unsigned char*)" Touch finger! ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- ensure=PS_GetImage();
- if(ensure==0x00)
- {
- ensure=PS_GenChar(CharBuffer1);//????
- if(ensure==0x00)
- {
-
- OLED_ShowStr(0,6,(unsigned char*)" Figer Correct ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- i=0;
- processnum=1;
- }else ShowErrMessage(ensure);
- }else ShowErrMessage(ensure);
- break;
-
- case 1:
- i++;
-
- OLED_ShowStr(0,6,(unsigned char*)" Touch Again! ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- ensure=PS_GetImage();
- if(ensure==0x00)
- {
- ensure=PS_GenChar(CharBuffer2);//
- if(ensure==0x00)
- {
-
- OLED_ShowStr(0,6,(unsigned char*)" Figer Correct ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- i=0;
- processnum=2;
- }else ShowErrMessage(ensure);
- }else ShowErrMessage(ensure);
- break;
- case 2:
-
- OLED_ShowStr(0,6,(unsigned char*)" Figer Compare ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- ensure=PS_Match();
- if(ensure==0x00)
- {
- OLED_ShowStr(0,6,(unsigned char*)" Figer are same ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- processnum=3;
- }
- else
- {
-
- ShowErrMessage(ensure);
- i=0;
- processnum=0;
- }
- delay_ms(1000);
- break;
- case 3:
- OLED_ShowStr(0,6,(unsigned char*)" Touch Again! ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- ensure=PS_RegModel();
- if(ensure==0x00)
- {
- OLED_ShowStr(0,6,(unsigned char*)" Comper Success!",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- processnum=4;//?????
- }else {processnum=0;ShowErrMessage(ensure);}
- delay_ms(1000);
- break;
-
- case 4:
-
- do
- ID=1;
- while(!(ID<300));
- ensure=PS_StoreChar(CharBuffer2,ID);
- if(ensure==0x00)
- {
- OLED_ShowStr(0,6,(unsigned char*)" ADD Success! ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
- PS_ValidTempleteNum(&ValidN);
- delay_ms(1500);
-
- return ;
- }else {processnum=0;ShowErrMessage(ensure);}
- break;
- }
- delay_ms(800);
- if(i==5)//
- {
-
- break;
- }
- }
- }
- /**************************************************************
- DESC:對比指紋
- *****************************************************************/
- void press_FR(void)
- {
- SearchResult seach;
- u8 ensure;
- OLED_ShowStr(0,6,(unsigned char*)" Begin Compare ",2);
- ensure=PS_GetImage();
- if(ensure==0x00)//
- {
- ensure=PS_GenChar(CharBuffer1);
- if(ensure==0x00) //
- {
- ensure=PS_HighSpeedSearch(CharBuffer1,0,300,&seach);
- if(ensure==0x00)//
- {
- OLED_ShowStr(0,6,(unsigned char*)" Comper PASS! ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:CPR FRIGER ",2);
- }
- else
- {
- OLED_ShowStr(0,6,(unsigned char*)" Comper Fail! ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:CPR FRIGER ",2);
- }
-
- }
- else
- {
- OLED_ShowStr(0,6,(unsigned char*)" Comper Fail! ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:CPR FRIGER ",2);
- }
-
- delay_ms(1000);//
- }
-
- }
- /******************************************************************************
- DESC:刪除指紋
- *******************************************************************************/
- void Del_FR(void)
- {
- u8 ensure;
- delay_ms(50);
- ensure=PS_Empty();//?????
- if(ensure==0)
- {
- OLED_ShowStr(0,6,(unsigned char*)" FINGER DELL OK ",2);
- OLED_ShowStr(0,4,(unsigned char*)" FUN:DEL FRIGER ",2);
- }
- delay_ms(1500);//???????
- }
復制代碼
全部資料51hei下載地址:
ATK-AS608指紋識別模塊.rar
(985.91 KB, 下載次數: 199)
2018-4-23 03:59 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|