找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 9207|回復(fù): 8
收起左側(cè)

AS608指紋模塊的stm32驅(qū)動(dòng)源碼

  [復(fù)制鏈接]
ID:314074 發(fā)表于 2018-4-22 21:36 | 顯示全部樓層 |閱讀模式
AS608指紋模塊資料包
0.jpg

stm32源程序:

  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "usart2.h"
  5. #include "AS608.h"
  6. #include "timer.h"
  7. #include "oled.h"



  8. #define usart2_baund  57600 //
  9. SysPara AS608Para;          //
  10. u16 ValidN;                 //


  11. void Add_FR(void);        //添加指紋
  12. void Del_FR(void);        //刪除指紋
  13. void press_FR(void);//比對(duì)指紋

  14. int main(void)
  15. {                 
  16.         u8 ensure;
  17.         u8 key_num;
  18.         char *str;

  19.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
  20.         delay_init();              //初始化延時(shí)函數(shù)
  21.         uart_init(115200);        //初始化串口1波特率為115200,用于支持USMART
  22.         usart2_init(usart2_baund);//初始化串口2,用于與指紋模塊通訊
  23.         PS_StaGPIO_Init();        //初始化FR讀狀態(tài)引腳
  24.         OLED_Init();           //OLED初始化  //初始化顯示
  25.         OLED_ShowStr(0,0,(unsigned char*)" FINGERPRINT ID ",2);  
  26.         OLED_ShowStr(0,2,(unsigned char*)"                ",2);
  27.         OLED_ShowStr(0,4,(unsigned char*)"                ",2);
  28.   OLED_ShowStr(0,6,(unsigned char*)"                ",2);       
  29.         //與指紋模塊握手
  30.         while(PS_HandShake(&AS608Addr))
  31.         {
  32.           OLED_ShowStr(0,2,(unsigned char*)" ShakHands....",2);
  33.         }
  34.         //握手通過(guò)  
  35.         OLED_ShowStr(0,2,(unsigned char*)" Ready To Work ",2);       
  36.         delay_ms(100);
  37.         while(1)
  38.         {       
  39.                 press_FR();
  40.                 //添加指紋
  41.                 if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)==0)
  42.                    {          
  43.                      delay_ms(10);
  44.                             if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)==0)
  45.                              {
  46.                                //setup=setup+2000;
  47.                                                  Add_FR();
  48.                                                  OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
  49.                              }       
  50.                    }
  51.                         //對(duì)比指紋
  52.                                  if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==0)
  53.                    {          
  54.                      delay_ms(10);
  55.                             if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==0)
  56.                              {
  57.                                Del_FR();
  58.                        
  59.                                                  OLED_ShowStr(0,4,(unsigned char*)" FUN:DEL FRIGER ",2);
  60.                              }       
  61.                    }       
  62.                 }
  63. }


  64. void ShowErrMessage(u8 ensure)
  65. {
  66. }
  67. void Add_FR(void)
  68. {
  69.         u8 i=0,ensure ,processnum=0;
  70.         u16 ID;
  71.         while(1)
  72.         {
  73.                 switch (processnum)
  74.                 {
  75.                         case 0:
  76.                                 i++;
  77.                                
  78.                           OLED_ShowStr(0,6,(unsigned char*)" Touch finger!  ",2);
  79.                           OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
  80.                                 ensure=PS_GetImage();
  81.                                 if(ensure==0x00)
  82.                                 {
  83.                                         ensure=PS_GenChar(CharBuffer1);//????
  84.                                         if(ensure==0x00)
  85.                                         {
  86.                                                
  87.                                                 OLED_ShowStr(0,6,(unsigned char*)" Figer Correct  ",2);
  88.                                                 OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
  89.                                                 i=0;
  90.                                                 processnum=1;                                       
  91.                                         }else ShowErrMessage(ensure);                               
  92.                                 }else ShowErrMessage(ensure);                                               
  93.                                 break;
  94.                        
  95.                         case 1:
  96.                                 i++;
  97.                        
  98.                           OLED_ShowStr(0,6,(unsigned char*)" Touch Again!   ",2);
  99.                           OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
  100.                                 ensure=PS_GetImage();
  101.                                 if(ensure==0x00)
  102.                                 {
  103.                                         ensure=PS_GenChar(CharBuffer2);//                       
  104.                                         if(ensure==0x00)
  105.                                         {
  106.                                                
  107.                                                 OLED_ShowStr(0,6,(unsigned char*)" Figer Correct  ",2);
  108.                                                 OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
  109.                                                 i=0;
  110.                                                 processnum=2;
  111.                                         }else ShowErrMessage(ensure);       
  112.                                 }else ShowErrMessage(ensure);               
  113.                                 break;

  114.                         case 2:
  115.                                
  116.                           OLED_ShowStr(0,6,(unsigned char*)" Figer Compare  ",2);
  117.                                 OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
  118.                                 ensure=PS_Match();
  119.                                 if(ensure==0x00)
  120.                                 {

  121.                                         OLED_ShowStr(0,6,(unsigned char*)" Figer are same ",2);
  122.                                         OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
  123.                                         processnum=3;
  124.                                 }
  125.                                 else
  126.                                 {
  127.                                        
  128.                                         ShowErrMessage(ensure);
  129.                                         i=0;
  130.                                         processnum=0;               
  131.                                 }
  132.                                 delay_ms(1000);
  133.                                 break;

  134.                         case 3:

  135.                           OLED_ShowStr(0,6,(unsigned char*)" Touch Again!   ",2);
  136.                           OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
  137.                                 ensure=PS_RegModel();
  138.                                 if(ensure==0x00)
  139.                                 {

  140.                                         OLED_ShowStr(0,6,(unsigned char*)" Comper Success!",2);
  141.                             OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);
  142.                                         processnum=4;//?????
  143.                                 }else {processnum=0;ShowErrMessage(ensure);}
  144.                                 delay_ms(1000);
  145.                                 break;
  146.                                
  147.                         case 4:       
  148.                                        
  149.                                 do
  150.                                         ID=1;
  151.                                 while(!(ID<300));
  152.                                 ensure=PS_StoreChar(CharBuffer2,ID);
  153.                                 if(ensure==0x00)
  154.                                 {
  155.           OLED_ShowStr(0,6,(unsigned char*)"  ADD Success!  ",2);
  156.                             OLED_ShowStr(0,4,(unsigned char*)" FUN:ADD FRIGER ",2);                                       
  157.                                         PS_ValidTempleteNum(&ValidN);
  158.                                         delay_ms(1500);
  159.                                        
  160.                                         return ;
  161.                                 }else {processnum=0;ShowErrMessage(ensure);}                                       
  162.                                 break;                               
  163.                 }
  164.                 delay_ms(800);
  165.                 if(i==5)//
  166.                 {
  167.                
  168.                         break;       
  169.                 }                               
  170.         }
  171. }

  172. /**************************************************************
  173. DESC:對(duì)比指紋
  174. *****************************************************************/
  175. void press_FR(void)
  176. {
  177.         SearchResult seach;
  178.         u8 ensure;
  179.         OLED_ShowStr(0,6,(unsigned char*)" Begin Compare ",2);
  180.         ensure=PS_GetImage();
  181.         if(ensure==0x00)//
  182.         {       
  183.                 ensure=PS_GenChar(CharBuffer1);
  184.                 if(ensure==0x00) //
  185.                 {               
  186.                         ensure=PS_HighSpeedSearch(CharBuffer1,0,300,&seach);
  187.                         if(ensure==0x00)//
  188.                         {                               
  189.                                 OLED_ShowStr(0,6,(unsigned char*)" Comper PASS!   ",2);
  190.                           OLED_ShowStr(0,4,(unsigned char*)" FUN:CPR FRIGER ",2);
  191.                         }
  192.                         else
  193.                         {
  194.                             OLED_ShowStr(0,6,(unsigned char*)" Comper Fail!   ",2);
  195.                             OLED_ShowStr(0,4,(unsigned char*)" FUN:CPR FRIGER ",2);
  196.                         }       
  197.                        
  198.                 }
  199.                         else
  200.                         {
  201.                             OLED_ShowStr(0,6,(unsigned char*)" Comper Fail!   ",2);
  202.                             OLED_ShowStr(0,4,(unsigned char*)" FUN:CPR FRIGER ",2);
  203.                         }       
  204.                
  205.          delay_ms(1000);//

  206.         }
  207.                
  208. }
  209. /******************************************************************************
  210. DESC:刪除指紋
  211. *******************************************************************************/

  212. void Del_FR(void)
  213. {
  214.         u8  ensure;
  215.         delay_ms(50);
  216.                 ensure=PS_Empty();//?????
  217.         if(ensure==0)
  218.         {
  219.                 OLED_ShowStr(0,6,(unsigned char*)" FINGER DELL OK ",2);
  220.           OLED_ShowStr(0,4,(unsigned char*)" FUN:DEL FRIGER ",2);
  221.         }
  222.         delay_ms(1500);//???????
  223. }


復(fù)制代碼


全部資料51hei下載地址:
ATK-AS608指紋識(shí)別模塊.rar (985.91 KB, 下載次數(shù): 199)

回復(fù)

使用道具 舉報(bào)

ID:261973 發(fā)表于 2018-5-5 13:59 | 顯示全部樓層
大佬,能問(wèn)一下為什么單片機(jī)與指紋模塊握手不成功嗎?程序就是用的這套
回復(fù)

使用道具 舉報(bào)

ID:388487 發(fā)表于 2018-8-21 15:03 | 顯示全部樓層
凌飛 發(fā)表于 2018-5-5 13:59
大佬,能問(wèn)一下為什么單片機(jī)與指紋模塊握手不成功嗎?程序就是用的這套

不好意思我來(lái)挖墳了。想問(wèn)一下層主 樓主沒有提供電路連接啊 你是怎么就弄好了呢
回復(fù)

使用道具 舉報(bào)

ID:634956 發(fā)表于 2019-11-15 23:10 | 顯示全部樓層
凌飛 發(fā)表于 2018-5-5 13:59
大佬,能問(wèn)一下為什么單片機(jī)與指紋模塊握手不成功嗎?程序就是用的這套

我這邊握手的時(shí)候也一直不成功,不知道什么原因
回復(fù)

使用道具 舉報(bào)

ID:662104 發(fā)表于 2019-12-12 08:45 | 顯示全部樓層
14,ATK-AS608指紋識(shí)別模塊
回復(fù)

使用道具 舉報(bào)

ID:662104 發(fā)表于 2019-12-12 08:48 | 顯示全部樓層
ATK-AS608指紋識(shí)別模塊 (庫(kù)函數(shù)版本,適合Mini開發(fā)板)擴(kuò)展實(shí)驗(yàn)14 ATK-AS608指紋識(shí)別模塊測(cè)試實(shí)驗(yàn).zip (1.22 MB, 下載次數(shù): 30)
回復(fù)

使用道具 舉報(bào)

ID:522654 發(fā)表于 2020-2-8 18:03 | 顯示全部樓層
代碼少一個(gè).h文件
回復(fù)

使用道具 舉報(bào)

ID:688881 發(fā)表于 2020-2-13 15:46 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:690673 發(fā)表于 2020-2-16 17:04 | 顯示全部樓層
superbear 發(fā)表于 2020-2-8 18:03
代碼少一個(gè).h文件

對(duì)啊,怎么解決
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表