• 大小: 4.49MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-28
  • 语言: 其他
  • 标签: 指纹模块  

资源简介

网购的指纹模块附带的代码例程,注释很详细,清晰易懂。

资源截图

代码片段和文件信息

#include “fingerprint.h“

//=========全局变量==========
//u8 gRsBuf[250];  //串行接收缓存
u8 gTxBuf[250];    //串行发送缓存
//u8 gRsLength;

//static void delay()
//{
// u16 i j;
// for (i = 0; i < 1000; i++)
// for(j = 0; j < 10000; j++);
//}


void TxByte(u8 temp)
{
USART_SendData(FG_UARTtemp);
while (USART_GetFlagStatus(FG_UART USART_FLAG_TXE) == RESET);
}

/*   
** 函数名TxAndRsCmd
** 描述  :串口发送子程序向DSP发送数据
** 输入  :SCNT   发送字节数
 RCNT   接收字节数
 Delay  延时时间数 
** 返回  :失败  ACK_FAIL 
 成功  ACK_SUCCESS 
 */

u8 TxAndRsCmd(u8 Scnt u8 Rcnt u8 Delay)
{
   u8  i j CheckSum;
 u32 RsTimeCnt;
 TxByte(CMD_HEAD); //标志头  
 CheckSum = 0;
 for (i = 0; i < Scnt; i++)
 {
TxByte(gTxBuf[i]);  
CheckSum ^= gTxBuf[i];
 }
 TxByte(CheckSum);
 TxByte(CMD_TAIL); 
 
 gRsLength = 0;
 RsTimeCnt = Delay * 120000;
 while (gRsLength < Rcnt && RsTimeCnt > 0)
RsTimeCnt--;

 if (gRsLength != Rcnt)return ACK_TIMEOUT;//检验长度,如果不是就直接返回超时
 if (gRsBuf[0] != CMD_HEAD) return ACK_FAIL;//校验包头,如果不是就直接返回错误码
 if (gRsBuf[Rcnt - 1] != CMD_TAIL) return ACK_FAIL;//校验操作码,错误就返回操作吗
 if (gRsBuf[1] != (gTxBuf[0])) return ACK_FAIL;
 
 CheckSum = 0;
 for (j = 1; j < gRsLength - 1; j++) CheckSum ^= gRsBuf[j];//校验数据包
 if (CheckSum != 0) return ACK_FAIL;    
   return ACK_SUCCESS;
}  
/*************************************BSP***********************************/
/*
**** BSP 供上一层的任务调用
**** YJF
**** 实现API
*/


/*   
** 函数名GetUserCount
** 描述  :查询用户总数子程序
** 输入  :NULL
** 返回  :失败  API_ACK_FAIL 
**         成功  用户总数
 */
u8 GetUserCount(void)
{
  u8 m;

gTxBuf[0] = CMD_USER_CNT;
gTxBuf[1] = 0;
gTxBuf[2] = 0;
gTxBuf[3] = 0;
gTxBuf[4] = 0;

m = TxAndRsCmd(5 8 50);

if (m == ACK_SUCCESS && gRsBuf[4] == ACK_SUCCESS)
{
    return gRsBuf[3];//最多256个缓存用户,已经够用了,后期需要做扩展
}
else
{
  return API_ACK_FAIL;
}
}

/*   
** 函数名GetcompareLevel
** 描述  :读取当前比对等级
** 输入  :NULL 
** 返回  :失败  API_ACK_FAIL 
**         成功  当前比较的等级
 */ 
u8 GetcompareLevel(void)
{
u8 m;

gTxBuf[0] = CMD_COM_LEV;
gTxBuf[1] = 0;
gTxBuf[2] = 0;
gTxBuf[3] = 1;
gTxBuf[4] = 0;

m = TxAndRsCmd(5 8 50);

if (m == ACK_SUCCESS && gRsBuf[4] == ACK_SUCCESS)
{
    return gRsBuf[3];//0-9
}
else
{
  return API_ACK_FAIL;
}
}

/*   
** 函数名SetcompareLevel 
** 描述  :配置比较的等级,数值越大,比较越严格  
** 输入  :temp 0-9  
** 返回  :失败  API_ACK_FAIL 
**         成功  当前比较的等级
 */ 
u8 SetcompareLevel(u8 temp)
{
u8 m;

gTxBuf[0] = CMD_COM_LEV;
gTxBuf[1] = 0;
gTxBuf[2] = temp;
gTxBuf[3] = 0;
gTxBuf[4] = 0;

m = TxAndRsCmd(5 8 50);

if (m == ACK_SUCCESS && gRsBuf[4] == ACK_SUCCESS)
{
    return gRsBuf[3];
}
else
{
  return API_ACK_FAIL;
}
}

/*   
** 函数名GetTimeOut
** 描述  :读取超时时间
** 输入  :NULL
** 返回  :失败  API_ACK_FAIL 
**         成功  当前超时时间
 */ 
u8 GetTimeOut(void)
{
u8 m;

gTxBuf[0] = CMD_TIMEOUT;
gTxBuf[1] = 0;
gTxBuf[2] = 0;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-06-11 14:21  指纹模块\
     目录           0  2017-06-11 14:21  指纹模块\BSP\
     文件       10072  2015-10-08 12:21  指纹模块\BSP\fingerprint.c
     文件        4313  2015-10-08 12:21  指纹模块\BSP\fingerprint.h
     目录           0  2017-06-11 14:21  指纹模块\CORE\
     文件       17273  2015-10-08 12:21  指纹模块\CORE\core_cm3.c
     文件       85714  2015-10-08 12:21  指纹模块\CORE\core_cm3.h
     文件       15503  2015-10-08 12:21  指纹模块\CORE\startup_stm32f10x_hd.s
     文件         399  2015-10-08 12:21  指纹模块\keilkilll.bat
     目录           0  2017-06-11 14:21  指纹模块\OBJ\
     文件        3961  2015-10-08 12:21  指纹模块\OBJ\core_cm3.crf
     文件         123  2015-10-08 12:21  指纹模块\OBJ\core_cm3.d
     文件       11180  2015-10-08 12:21  指纹模块\OBJ\core_cm3.o
     文件      248710  2015-10-08 12:21  指纹模块\OBJ\delay.crf
     文件         673  2015-10-08 12:21  指纹模块\OBJ\delay.d
     文件      267316  2015-10-08 12:21  指纹模块\OBJ\delay.o
     文件      257939  2015-10-08 12:21  指纹模块\OBJ\fingerprint.crf
     文件         884  2015-10-08 12:21  指纹模块\OBJ\fingerprint.d
     文件      279812  2015-10-08 12:21  指纹模块\OBJ\fingerprint.o
     文件      253153  2015-10-08 12:21  指纹模块\OBJ\main.crf
     文件         737  2015-10-08 12:21  指纹模块\OBJ\main.d
     文件      270932  2015-10-08 12:21  指纹模块\OBJ\main.o
     文件      247788  2015-10-08 12:21  指纹模块\OBJ\misc.crf
     文件         635  2015-10-08 12:21  指纹模块\OBJ\misc.d
     文件      264872  2015-10-08 12:21  指纹模块\OBJ\misc.o
     文件          63  2015-10-08 12:21  指纹模块\OBJ\startup_stm32f10x_hd.d
     文件        6792  2015-10-08 12:21  指纹模块\OBJ\startup_stm32f10x_hd.o
     文件      264071  2015-10-08 12:21  指纹模块\OBJ\stm32f10x_adc.crf
     文件         770  2015-10-08 12:21  指纹模块\OBJ\stm32f10x_adc.d
     文件      288524  2015-10-08 12:21  指纹模块\OBJ\stm32f10x_adc.o
     文件      251249  2015-10-08 12:21  指纹模块\OBJ\stm32f10x_bkp.crf
............此处省略166个文件信息

评论

共有 条评论