⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matchfinger.c

📁 指纹通讯模块程序
💻 C
字号:
#include "variable.h"
extern unsigned char Search[];
extern unsigned char GenImg[];                       //录入手指
extern unsigned char Img2TzBuffer1[];                //生成指纹原始图象特征数据 存入CharBuffer1
extern unsigned char Img2TzBuffer2[];                //生成指纹原始图象特征数据 存入CharBuffer2
extern unsigned char RegModel[];
extern unsigned char StoreMode[];
extern unsigned char LoadChar[];    //从指纹库中读取指纹模版

extern bit  PacketValue ;           // 0 没有带参数的包  1 带参数的包
extern unsigned char PacketID   ;   //包标识
extern unsigned char PacketData ;   //包内容
extern bit  revSuccess ;            // 0 没接收成功  1 接收成功
extern unsigned char PacketMessage[10]; // 指向数据包内容参数的指针 // 因为参数的长度是不定的所以用指针而不能用数组
extern unsigned char MessageLength ; //参数的长度

extern unsigned char test[4];
extern void initial(void) ;
extern void SendFunction(unsigned char *p);
extern void revFunction(void);
extern void delay(int n);
extern unsigned char num;
extern bit key2;                 //???


void MatchFinger(void)
{
    bit SearchRight ;
    bit checkFinger ;
    bit RecordSuccess;
    bit ScanSuccess;
    unsigned char  k;
    unsigned char  FailTime=0;  //重新发送某指令次数
    unsigned char  checkTime=0;
    unsigned char i;
    PacketData=0xFF;
    for(i=0;i<10;i++)
    {
      PacketMessage[i]=0x00;
    }

    SearchRight=0;
    RecordSuccess=0;

        while((!SearchRight) && (checkTime<15) && (!checkFinger) && !scanstop)
        {

        //=================== 录入指纹 =====================

                SendFunction(GenImg);    //录入指纹  发送第一个手指录入指纹的指令
                num=0;
                k=0;
                FailTime=5;
                while(!revSuccess && FailTime)
                {
                  k++;
                  delay(6);
                  if(k>1)
                  {
                     k=0;
                     SendFunction(GenImg);
                     num=0;
                     FailTime--;
                  }
                }
                while(revSuccess)          //若接收到指模返回的应答包,查看的PacketData值
                {
                   revSuccess=0;
                   if(PacketData==0x00)
                   {
                    ScanSuccess=1;
                   }
                }


       // ===================== 发送生成指纹特征文件===========================

               if(ScanSuccess)
               {
                    ScanSuccess=0;
                    SendFunction(Img2TzBuffer1); //发送生成指纹特征文件
                    num=0;
                    k=0;
                    FailTime=5;
                while(!revSuccess && FailTime)
                {
                  k++;
                  delay(3);
                  if(k==2)
                  {
                    k=0;
                    SendFunction(Img2TzBuffer1); //发送生成指纹特征文件
                    num=0;
                    FailTime--;
                  }

                }
                while(revSuccess)
                {
                   revSuccess=0;
                     if(PacketData==0x00)
                        RecordSuccess=1;        //生成指纹特征文件成功
                     if(PacketData!=0x00)
                        RecordSuccess=0;        //失败
                }
               }
      //====================== 在指纹库里搜索指纹===========================

               if( RecordSuccess==1)
               {
                 RecordSuccess=0;

                 SendFunction(Search);    //在指纹库里搜索指纹
                 num=0;
                 k=0;
                 FailTime=5;
                 while(!revSuccess && FailTime)
                 {
                    k++;
                    delay(5);
                    if(k>2)
                   {
                      k=0;
                      SendFunction(Search);
                      FailTime--;
                      num=0;
                   }
                 }
                 while(revSuccess)          //若接收到指模返回的应答包,查看的PacketData值
                 {
                   revSuccess=0;
                   if(PacketData==0x00)
                      SearchRight=1;
                 }
               }

      //========================================================================
         checkTime++;
       }

         if(SearchRight)
          {
                   // key2=0;
                    SearchRight=0;
                    if(PacketMessage[1]==0)
                    {
                          Led1=0;
                          delay(10);
                          Led1=1;
                     }
                    if(PacketMessage[1]==1)
                    {
                          Led2=0;
                          delay(10);
                          Led2=1;
                    }
                     if(PacketMessage[1]==2)
                    {
                          Led3=0;
                          delay(10);
                          Led3=1;
                    }
                     if(PacketMessage[1]==3)
                    {
                          Led4=0;
                          delay(10);
                          Led4=1;
                    }
                    if(PacketMessage[1]==4)
                    {
                      Led1=0;
                      Led2=0;
                      Led3=0;
                      Led4=0;
                      delay(10);

                      Led1=1;
                      Led2=2;
                      Led3=3;
                      Led4=4;
                    }
           }

 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -