打印
[STM32F1]

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

[复制链接]
451|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-4-8 15:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
导读
本文章主要是自己兴趣想学习和尝试玩一下指纹识别模块,也是帮没接触过指纹识别模块的同学踩一下坑,比较适合新手和需要作毕业设计的同学。网上买回来的模块即插即用,不用半天就可以实现功能,也可以做一些自己感兴趣的智能家居小用品。

模块和工具的准备
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口初始化函数即可。

移植代码和使用方法
程序段
主函数:
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():
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():
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():
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
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_45270358/article/details/111985252

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1931

主题

15650

帖子

12

粉丝