请选择 进入手机版 | 继续访问电脑版

STM32F103RCT6Mini开发板搭建指纹识别系统

[复制链接]
西门听雨 发表于 2021-1-1 09:59:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
STM32F103RCT6Mini开辟板搭建指纹识别系统



导读

本文章主要是自己兴趣想学习和实验玩一下指纹识别模块,也是帮没打仗过指纹识别模块的同学踩一下坑,比力适合新手和需要作毕业设计的同学。网上买返来的模块即插即用,不消半天就可以实现功能,也可以做一些自己感兴趣的智能家居小用品。
模块和工具的准备

1、开辟板:STM32F103RCT6Mini开辟板
2、显示屏:某宝上购买的1.44寸TFT显示屏(这个显示屏看个人喜欢,无关紧要,可以用自己已经有的显示屏作显示,没有的话就直接打印串口的方式看运行过程)
3、指纹识别模块:某宝上购买的AS608指纹识别
4、按键板:自己用面包板焊接的按键
接线

1.44寸液晶屏电源接线

VCC——————>接5V DC
GND——————> 接地
液晶屏数据线接线

CS——————>接 PC7 片选信号
CLK——————>接 PB13 SPI时钟信号
SDI(DIN)——————>接 PB15 SPI数据总线
液晶屏控制线接线

LED——————>接 PB9 背光控制线,高电平电亮
RS——————>接 PC6 寄存器选择信号 RS=0发送下令 RS = 1发送像素数据
RST——————>接 PB12 液晶屏复位信号线,低电平复位。
指纹识别模块AS608接线

VCC——————>接3.3V (切记不可以接5V,会烧坏)
GND——————>接地
RX——————>PB10
TX——————>PB11
实物图:



接线图:


杜邦线接的有点乱,IO口的接线看个人喜好,除了RX和TX需要接开辟板上的RX和TX之外,其他线可以随意更改,只需要修改对应的IO口初始化函数即可。
移植代码和使用方法

步伐段

主函数:

  1. int main(void){   delay_init();              //延时函数初始化  SystemInit();                //系统初始化  Uart_Init(115200);           //打印串口初始化  usart3_init(57600);          //指纹识别模块初始化  KEY_Init();                  //按键初始化  Lcd_Init();                  //LCD屏初始化  LCD_LED_SET;                 //通过IO控制背光亮   Redraw_Mainmenu();           //绘制主菜单(部分内容由于分辨率超出物理值可能无法显示) while(1) {       key_num = KEY_Scan();       if(key_num == 1)       {        key_num = 0;        Lcd_Clear(WHITE);        Add_FR();       }       if(key_num == 3)       {        key_num = 0;        Lcd_Clear(WHITE);        Del_FR();       }       if(key_num == 5)       {        key_num=0;        Lcd_Clear(WHITE);        press_FR();       }        }     }
复制代码
指纹添加函数Add_FR():

  1. void Add_FR(void){ u8 i, ensure, processnum = 0; u8 ID_NUM = 0;char str[20]; while(1) {   switch (processnum)   {   case 0:     i++;   Gui_DrawFont_GBK16(35,15,RED,WHITE,"请按手指");   showimage(gImage_Finger65,33,40,97,104,65,65);    //指纹图片显示示例     ensure = PS_GetImage();     if(ensure == 0x00)     {       ensure = PS_GenChar(CharBuffer1); //生成特征       if(ensure == 0x00)       {    Gui_DrawFont_GBK16(35,15,GREEN,WHITE,"指纹正常");    delay_ms(1500);         i = 0;         processnum = 1;                 //跳到第二步       }       else ShowErrMessage(ensure);     }     else  {       ShowErrMessage(ensure);  }     break;     .......     .......        //省略的部分背面摆放到网盘,自己下载查察
复制代码
指纹删除函数Del_FR():

  1. while(key_num != 3) {  key_num = KEY_Scan();  if(key_num == 2)  {   key_num = 0;   if(ID_NUM > 0)    ID_NUM--;  }  if(key_num == 4)  {   key_num = 0;   if(ID_NUM < 99)    ID_NUM++;  }  if(key_num == 1)   goto MENU ;             //返回主页面  if(key_num == 5)   {   key_num = 0;   ensure = PS_Empty();   //清空指纹库   if(ensure == 0)   {         Lcd_Clear(WHITE);    Gui_DrawFont_GBK16(10,15,GREEN,WHITE,"清空指纹库乐成");    printf("清空指纹库乐成 \r\n");   }   .........   .........   //省略的部分背面摆放到网盘,自己下载查察
复制代码
指纹验证函数press_FR():

  1. void press_FR(void){SearchResult seach;u8 ensure;char str[20];Gui_DrawFont_GBK16(35,15,RED,WHITE,"请按手指");showimage(gImage_Finger65,33,40,97,104,65,65);    //指纹图片显示示例while(key_num != 1){ key_num = KEY_Scan(); ensure = PS_GetImage(); if(ensure == 0x00)  {printf("获取图像乐成 \r\n");   ensure = PS_GenChar(CharBuffer1);   if(ensure == 0x00)    { printf("生成特征乐成 \r\n");     ensure = PS_HighSpeedSearch(CharBuffer1, 0, 99, &seach);     if(ensure == 0x00)      {  printf("验证乐成 \r\n");  Lcd_Clear(WHITE);       Gui_DrawFont_GBK16(16,15,GREEN,WHITE,"指纹验证乐成");       sprintf(str, " 指纹ID:%d  ", seach.pageID);       Gui_DrawFont_GBK16(16,35,RED,WHITE,(u8*)str);       delay_ms(1500);       delay_ms(1500);  break;     }     else  .........  .........  //省略的部分背面摆放到网盘,自己下载查察
复制代码
只需要移植一个按键C文件、串口初始化C文件、AS608C文件,文件路径和对应函数添加好,编译下载即可运行,方便快捷。
实验效果:


注意事项:

1、函数初始化切记不要漏掉
2、按键质量差的消抖需要注意
3、指纹识别模块电源不要接错,否则会烧坏。
心得总结

模块照旧很方便使用的,接线简朴,在学校加入项目大概初学C语言的人都可以埋来学习一下,兴趣之余可以创作一些雷同智能的开关锁,指纹识别系统,签到系统等等,即学即用。如果需要交换请批评留言。显示函数和部分处理处罚函数看你个人需要,可以优化得更好,处理处罚逻辑可以看需要更改符合自己要求得,函数都是封装好的,直接调用就好。有更好玩的模块接待一起探讨学习。
资料下载:

链接:https://pan.baidu.com/s/1Z7DsftEdwSkulBhlbRwKWw
提取码:k9fv

来源:https://blog.csdn.net/weixin_45270358/article/details/111985252
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

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

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )