找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9081|回复: 8
收起左侧

AS608指纹模块的stm32驱动源码

  [复制链接]
ID:314074 发表于 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);//比对指纹

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

  19.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  20.         delay_init();              //初始化延时函数
  21.         uart_init(115200);        //初始化串口1波特率为115200,用于支持USMART
  22.         usart2_init(usart2_baund);//初始化串口2,用于与指纹模块通讯
  23.         PS_StaGPIO_Init();        //初始化FR读状态引脚
  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.         //握手通过  
  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.                         //对比指纹
  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:对比指纹
  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. }


复制代码


全部资料51hei下载地址:
ATK-AS608指纹识别模块.rar (985.91 KB, 下载次数: 199)

回复

使用道具 举报

ID:261973 发表于 2018-5-5 13:59 | 显示全部楼层
大佬,能问一下为什么单片机与指纹模块握手不成功吗?程序就是用的这套
回复

使用道具 举报

ID:388487 发表于 2018-8-21 15:03 | 显示全部楼层
凌飞 发表于 2018-5-5 13:59
大佬,能问一下为什么单片机与指纹模块握手不成功吗?程序就是用的这套

不好意思我来挖坟了。想问一下层主 楼主没有提供电路连接啊 你是怎么就弄好了呢
回复

使用道具 举报

ID:634956 发表于 2019-11-15 23:10 | 显示全部楼层
凌飞 发表于 2018-5-5 13:59
大佬,能问一下为什么单片机与指纹模块握手不成功吗?程序就是用的这套

我这边握手的时候也一直不成功,不知道什么原因
回复

使用道具 举报

ID:662104 发表于 2019-12-12 08:45 | 显示全部楼层
14,ATK-AS608指纹识别模块
回复

使用道具 举报

ID:662104 发表于 2019-12-12 08:48 | 显示全部楼层
ATK-AS608指纹识别模块 (库函数版本,适合Mini开发板)扩展实验14 ATK-AS608指纹识别模块测试实验.zip (1.22 MB, 下载次数: 30)
回复

使用道具 举报

ID:522654 发表于 2020-2-8 18:03 | 显示全部楼层
代码少一个.h文件
回复

使用道具 举报

ID:688881 发表于 2020-2-13 15:46 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:690673 发表于 2020-2-16 17:04 | 显示全部楼层
superbear 发表于 2020-2-8 18:03
代码少一个.h文件

对啊,怎么解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表