连接

1、ATK-301 电容 指纹识别模块简介 ATK-301 电容 指纹识别模块(以下简称 LB301 模块)是 ALIENTEK 推出的一款高性 能的电容半导体指纹识别模块。LB301 采用了瑞典 FPC 公司按压式电容指纹传感器,该传 感器具有功耗低、稳定、图像一致性效果好、耐静电等级高的特点。模块搭配 GigaDevice (兆易创新)生产的指纹控制专用芯片,针对指纹传感器做出了大量的图像优化、速度优 化、算法优化,使模块具有识别速度快,通过率高的等特点。相对传统光学指纹模块,本 模块具有识别速度更快、体积更小、功耗更低等特点。 模块配备了串口通讯接口,用户无需研究复杂的图像处理及指纹识别算法,只需通过简 单的串口通讯按照通讯协议便可控制模块。本模块可应用于各种考勤机、保险箱柜、指纹门 禁系统、指纹锁等场合。技术指标如表 1.1 所示

技术指标:

项目 说明 工作电压(V) 3.0~3.6V,

典型值:3.3V 工作电流(mA) 20~50mA,

典型值:40mA

静态功耗(uA) 3~10uA,

典型值:5uA

工作环境 温度(°C):-20~70

传感器图像大小(pixel) 192*192pixel

分辨率 508DPI

对比速度 1:1<6ms 拒真率(FRR) <1%

认假率(FAR) <0.001% 指纹存容量 500 枚(ID:0~499)

使用寿命 1,000,000 次

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "key.h"
#include "usart2.h"
#include "LB301.h"
#include "led.h"#define usart2_baund  57600//串口2波特率,根据指纹模块波特率更改SysPara LB301Para;//指纹模块LB301参数
u16 ValidN;//模块内有效指纹个数void Add_FR(void);    //录指纹
void Del_FR(void);  //删除指纹
void press_FR(void);//刷指纹u16 GET_NUM(void);//获取数值int main(void)
{    u8 ensure;u8 key_num;u16 count = 0;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2delay_init();     //初始化延时函数LED_Init();uart_init(115200);  //初始化串口1波特率为115200,用于支持USMARTusart2_init(usart2_baund);//初始化串口2,用于与指纹模块通讯KEY_Init();                 //按键初始化 printf("与LB301模块握手....\r\n");while(PS_GetImage() == 0xff)//与LB301模块握手(读取图像指令有数据返回说明模块已经连接){delay_ms(400);printf("未检测到模块!!!\r\n");delay_ms(800);  printf("尝试连接模块...\r\n");}printf("通讯成功!!!\r\n");printf("波特率:%d   地址:%x\r\n",usart2_baund,LB301Addr);ensure=PS_ReadSysPara(&LB301Para);  //读参数 if(ensure==0x00){printf("库容量:%d     对比等级: %d\r\n",LB301Para.PS_max-ValidN,LB301Para.PS_level);}else;printf("key0删指纹,key1录指纹   \r\n");while(1){key_num=KEY_Scan(0);if(key_num){if(key_num==1){printf("正在删除指纹\r\n");Del_FR();}        if(key_num==2){printf("正在录指纹\r\n");Add_FR();        //录指纹       }                           }//查询刷指纹if(++count > 10) {count = 0;press_FR();       }delay_ms(1);                }
}//录指纹
void Add_FR(void)
{u8 i=0,ensure ,processnum=1,pressCout=1,len;u16 ID;while(1){switch (processnum){case 1: //连续按压4次指纹分别存到4个charBuffer里 i++;printf("请按指纹(%d)\r\n",pressCout);ensure=PS_GetImage();if(ensure==0x00) {i=0;delay_ms(100);//这里需要延时一下,模块内部处理图像需要时间ensure=PS_GenChar(pressCout);//生成特征if(ensure==0x00){printf("指纹正常\r\n");pressCout++;if(pressCout >=5){pressCout = 0;processnum=2;//跳到第二步}                         }else;          }else  ;    break;case 2:ensure=PS_RegMB();if(ensure==0x00) {printf("生成指纹模板成功\r\n");processnum=3;//跳到第三步}else {processnum=0;}delay_ms(1200);break;case 3:    printf("请输入ID   0=< ID <=499\r\n");ID=500;do{                if(USART_RX_STA&0x8000){    len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度                        printf("您发送的id为:\r\n\r\n");                        switch(len){case 1:ID=USART_RX_BUF[0]-48;break;case 2:ID=(USART_RX_BUF[0]-48)*10+(USART_RX_BUF[1]-48);break;case 3:ID=(USART_RX_BUF[0]-48)*100+(USART_RX_BUF[1]-48)*10+(USART_RX_BUF[2]-48);break;}printf("ID %d\r\n",ID);USART_RX_STA=0;}}while(!(ID<LB301Para.PS_max));//输入ID必须小于模块容量最大的数值ensure=PS_StoreMB(CharBuffer1,ID);//储存模板if(ensure==0x00) {               printf("录入指纹成功\r\n");PS_ValidTempleteNum(&ValidN);//读库指纹个数delay_ms(1500);return ;}else {processnum=0;}                   break;              }delay_ms(200);if(i>=20)//超过20次没有按手指则退出{break;  }               }
}//刷指纹
void press_FR(void)
{SearchResult seach;u8 ensure;ensure=PS_AutoIdentify(&seach);if(ensure==0x00)//自动验证成功{printf("ID:%d  匹配得分:%d\r\n",seach.pageID,seach.mathscore);if(seach.pageID==1)LED0=!LED0;else if(seach.pageID==2)LED1=!LED1;delay_ms(3000);}else if(ensure != 0xff){printf("验证错误\r\n");delay_ms(500);}
}//删除指纹
void Del_FR(void)
{u8  ensure,len;u16 num;printf("删除指纹\r\n");delay_ms(50);//num=GET_NUM();//获取返回的数值printf("请输入指纹ID,按key1清除全部指纹\r\n");num=500;do{        if(KEY1==0) {num=0xff00; break; }    if(USART_RX_STA&0x8000){    len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度                        printf("您发送的id为:\r\n\r\n");                        switch(len){case 1:num=USART_RX_BUF[0]-48;break;case 2:num=(USART_RX_BUF[0]-48)*10+(USART_RX_BUF[1]-48);break;case 3:num=(USART_RX_BUF[0]-48)*100+(USART_RX_BUF[1]-48)*10+(USART_RX_BUF[2]-48);break;}printf("ID %d\r\n",num);USART_RX_STA=0;}}while(!(num<LB301Para.PS_max));//输入ID必须小于模块容量最大的数值if(num==0xFFFF)goto MENU ; //返回主页面else if(num==0xFF00){    printf("正在清空指纹库\r\n");ensure=PS_Empty();//清空指纹库}else ensure=PS_DeletChar(num,1);//删除单个指纹if(ensure==0){printf("删除指纹成功\r\n");}elsedelay_ms(1200);PS_ValidTempleteNum(&ValidN);//读库指纹个数MENU:   delay_ms(50);}

其它详细代码请参考正点原子   指纹识别模块ATK-301 — 正点原子资料下载中心 1.0.0 文档 (openedv.com)http://www.openedv.com/docs/modules/other/ATK-301.html

atk301指纹识别模块-stm32-串口实现相关推荐

  1. AS608指纹识别模块+STM32实现指纹录入

    视频演示 d9148ed412b24119db81eef6c2c8e9ec 1.特性参数 (资料来自ALIENTEK文档) ATK-AS608 指纹识别模块是 ALIENTEK 推出的一款高性能的光学 ...

  2. 基于STM32单片机光学指纹识别模块(FPM10A)全教程(基于C语言)

    本文转载,其来源在参考中:1,稍加修改,因为近期使用到这个模块,故而加以整理! 1.平台 首先我使用的是 奋斗 STM32 开发板 MINI板 基于STM32单片机光学指纹识别模块(FPM10A)全教 ...

  3. K_A12_007 基于STM32等单片机驱动AS608光学指纹识别模块 OLED0.96显示

    K_A12_007 基于STM32等单片机驱动AS608光学指纹识别模块 OLED0.96显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 对应程序: 四.部分代码说明 1.接线引脚定义 ...

  4. YH-AS608指纹识别模块介绍

    前言 自小刺头深草里,而今渐觉出蓬蒿. 时人不识凌云木,直待凌云始道高.----杜荀鹤<小松> 一.YH-AS608简介 YH-AS608 是野火设计的高性能光学指纹识别模块.它采用了杭州 ...

  5. 硬件速攻-AS608指纹识别模块

    简介 AS608指纹识别模块是一种小型化.低功耗.高精度的指纹识别模块.它采用了高速DSP处理器和先进的算法,可以快速.准确地完成指纹图像的采集和识别. 这个指纹识别模块内部集成了指纹传感器.处理器. ...

  6. 51驱动AS608光学指纹识别模块 12864显示

    51驱动AS608光学指纹识别模块 12864显示 AS608光学指纹识别模块 模块工作原理 1.指纹特征 2.指纹处理 模块参数 引脚说明 实验程序 硬件设备和接线 程序讲解 按键 主函数 实验步骤 ...

  7. 【HaaS Python硬件积木】AS608指纹识别模块 打造指纹门禁 开门有手就行

    一.产品简介 ATK-AS608指纹识别模块是ALIENTEK推出的一款高性能的光学指纹识别模块.它采用的是指纹识别芯片公司杭州晟元芯片技术有限公司生产的AS608指纹识别芯片.该芯片内置DSP运算单 ...

  8. 电容指纹识别模块使用教程十分钟教会你使用指纹识别

    电容指纹识别模块使用教程十分钟教会你使用指纹识别 FPC1020A 引脚说明 使用前准备 接线说明 使用参考 总结 原文链接:https://www.yourcee.com/newsinfo/2923 ...

  9. ESP32开发之旅——AS608指纹识别模块

    ESP32开发之旅--AS608指纹识别模块) 前言 本文中,您将了解到如何使用ESP32调用AS608指纹识别模块. 需要注意的是,本文中的ESP32是使用Micro Python进行开发的,(同时 ...

最新文章

  1. 阿里CEO张勇放话,90%产品岗将由技术产生,不懂技术的产品人被out了吗?
  2. LR11之web_reg_find文本检查点的使用
  3. WebView无法自动播放h5的video视频标签解决办法
  4. 使用增强回归树和随机森林模型进行溪流水质预测--文献阅读
  5. java 自动类型_java类型自动转换
  6. 你H第一次做的视频,在B站播放量过万了~
  7. java jpanel setbackground,java – JLabel.setBackground(颜色)不起作用?
  8. 为已经存在的用设置表空间
  9. android java 图像显示不出来_Java-Android Studio无法在图像视图中显示图像
  10. Linux解决忘记密码的方法
  11. 吐血实践-TiDB离线安装
  12. ubuntu的初始密码
  13. No way to dispatch this command to Redis Cluster because keys have different slots.
  14. 2022.5.2 HTML学习第二天
  15. php 短信验证码过期时间,php下发短信验证码60秒简单验证
  16. 免费在线pdf转换成word转换器
  17. 高通平台8953 Linux DTS(Device Tree Source)设备树详解之三(高通MSM8953 android7.1实例分析篇)
  18. 电脑连接手机热点用百度云下载一会后断网
  19. python的交互式是什么,python交互是什么
  20. 深入理解MAGENTO – 第九章 – 数据集合瓦瑞恩

热门文章

  1. Docker(六)Harbor
  2. go语言基础-一文教你精通字符串类型
  3. linux最新bbr加速,[centos]bbr加速网络
  4. 用计算机弹光点,在电脑上播放电影出现光点
  5. 警惕企业发展过程中的灰犀牛
  6. R语言学习之因子转换成数值
  7. neauscan自带软件scan导出的.avg格式文件如何在matlab里面画图
  8. 第八届蓝桥杯省赛真题--取数位
  9. 下载centos下的工具包
  10. 怎么把一个excel拆分成多个