(4) STM32 AS608指纹识别模块测试代码
文章目录
- 1. 使用资源
- 2. 实现思路简述
- 3. 指纹测试代码
- 3.1 部分代码介绍
- 3.2 源码链接
1. 使用资源
- stm32RCT6板子
- AS608指纹模块
软件资源:
- 串口二资源连接AS608 TX RX接线
- AS608 wak线连接PA8设置外部中断触发检测是否有手指按下
接线: 红-vi3.3v 黄-TX-PA3 白-RX-PA2 黑-GEND 蓝-wak-PA8 绿-Vt-3.3 这颜色只对应我手里的模块
2. 实现思路简述
指纹模块识别,需要录入指纹,然后在进行识别判断,那么怎么判断有手指按下呢?这里就需要外部中断实现,AS608的wak线连接指纹识别那里的电压,当有手指按下时,电压发生变化,触发外部中断,可以在中断里设个标志位,触发中断后置1,当判断有手指按下后,然后进行指纹识别对比等操作,这里外部中断设置为上升沿触发即可,因为当手指松开时还会有出现下降沿,而这时不需要触发中断
3. 指纹测试代码
3.1 部分代码介绍
串口初始化以及外部中断初始化:
void AS608_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure;USART_InitTypeDef USART_InitStructure;/*开启串口GPIO口的时钟*/RCC_APB2PeriphClockCmd(AS608_TouchOut_INT_GPIO_CLK,ENABLE);AS608_USART_GPIO_APBxClkCmd(AS608_USART_GPIO_CLK, ENABLE);/*打开串口外设的时钟*/AS608_USART_APBxClkCmd(AS608_USART_CLK, ENABLE);/* 配置 NVIC 中断*/NVIC_Configuration();/* TouchOut线用到的GPIO */ GPIO_InitStructure.GPIO_Pin = AS608_TouchOut_INT_GPIO_PIN;/* 配置为浮空输入 */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(AS608_TouchOut_INT_GPIO_PORT, &GPIO_InitStructure);/* 选择EXTI的信号源 */GPIO_EXTILineConfig(AS608_TouchOut_INT_EXTI_PORTSOURCE, AS608_TouchOut_INT_EXTI_PINSOURCE); EXTI_InitStructure.EXTI_Line = AS608_TouchOut_INT_EXTI_LINE;/* EXTI为中断模式 */EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;/* 上升沿中断 */EXTI_InitStructure.EXTI_Trigger =EXTI_Trigger_Rising;/* 使能中断 */ EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);/*将USART Tx的GPIO配置为推挽复用模式*/GPIO_InitStructure.GPIO_Pin = AS608_USART_TX_GPIO_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(AS608_USART_TX_GPIO_PORT, &GPIO_InitStructure);/*将USART Rx的GPIO配置为浮空输入模式*/GPIO_InitStructure.GPIO_Pin = AS608_USART_RX_GPIO_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(AS608_USART_RX_GPIO_PORT, &GPIO_InitStructure);/*配置串口的工作参数*//*配置波特率*/USART_InitStructure.USART_BaudRate = AS608_USART_BAUDRATE;/*配置 针数据字长*/USART_InitStructure.USART_WordLength = USART_WordLength_8b;/*配置停止位*/USART_InitStructure.USART_StopBits = USART_StopBits_1;/*配置校验位*/USART_InitStructure.USART_Parity = USART_Parity_No ;/*配置硬件流控制*/USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;/*配置工作模式,收发一起*/USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;/*完成串口的初始化配置*/USART_Init(AS608_USART, &USART_InitStructure);/*使能串口接收中断*/USART_ITConfig(AS608_USART, USART_IT_RXNE, ENABLE); USART_ITConfig(AS608_USART, USART_IT_IDLE, ENABLE ); //使能串口总线空闲中断 /*使能串口*/USART_Cmd(AS608_USART, ENABLE); }
外部中断函数:
u8 press=0;
void AS608_TouchOut_IRQHandler(void)
{/*确保是否产生了EXTI Line中断*/if(EXTI_GetITStatus(AS608_TouchOut_INT_EXTI_LINE) != RESET) {press=1; EXTI_ClearITPendingBit(AS608_TouchOut_INT_EXTI_LINE); }
}
3.2 源码链接
这里放的源码为野火的,功能比较齐全,我自己的源码是在上面进行删减的
链接: https://pan.baidu.com/s/1FMo1N-CQGrksOW9c7Oypyw 提取码: 4tag
串口输出:
(4) STM32 AS608指纹识别模块测试代码相关推荐
- 基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)
目录 一.项目功能 二.视频 三.原理图 4.材料选择 5.部分程序 资料下载地址:基于STM32的多功能门禁系统 一.项目功能 1.AS608指纹解锁:可以录入.删除.验证指纹: 2.密码解锁:可以 ...
- AS608指纹识别模块+STM32实现指纹录入
视频演示 d9148ed412b24119db81eef6c2c8e9ec 1.特性参数 (资料来自ALIENTEK文档) ATK-AS608 指纹识别模块是 ALIENTEK 推出的一款高性能的光学 ...
- 硬件速攻-AS608指纹识别模块
简介 AS608指纹识别模块是一种小型化.低功耗.高精度的指纹识别模块.它采用了高速DSP处理器和先进的算法,可以快速.准确地完成指纹图像的采集和识别. 这个指纹识别模块内部集成了指纹传感器.处理器. ...
- 基于树莓派实现AS608指纹识别
基于树莓派实现AS608指纹识别 1.展示效果 1.1.按压手指 1.2.录入手指 1.3.匹配成功 注意:别人只是实现基本功能,还有许多的功能依葫芦画瓢自己加进去就行了. 2.具体过程 2.1.连接 ...
- 【HaaS Python硬件积木】AS608指纹识别模块 打造指纹门禁 开门有手就行
一.产品简介 ATK-AS608指纹识别模块是ALIENTEK推出的一款高性能的光学指纹识别模块.它采用的是指纹识别芯片公司杭州晟元芯片技术有限公司生产的AS608指纹识别芯片.该芯片内置DSP运算单 ...
- ESP32开发之旅——AS608指纹识别模块
ESP32开发之旅--AS608指纹识别模块) 前言 本文中,您将了解到如何使用ESP32调用AS608指纹识别模块. 需要注意的是,本文中的ESP32是使用Micro Python进行开发的,(同时 ...
- 基于STM32的指纹识别智能锁设计
本设计是基于stm32的指纹识别智能锁设计,主要实现以下功能: 1,OLED显示输入锁的状态,解锁状态,开锁成功,开锁失败,确定,清除 2,通过矩阵键盘输入开门密码.修改密码.确认密码等操作: 3,可 ...
- AS608指纹识别模块(树莓派)
0.前言 Github项目地址:AS608 项目实现了官方用户开发手册中所有列出的功能,函数声明在 as608.h中.用户可直接调用相应的函数与AS608模块进行通信. 另外,项目中有一个命令行程序, ...
- 基于stm32的指纹识别系统设计与系统
指纹识别系统设计与系统 详细功能模块描述: 1.系统硬件模块设计与实现: 指纹通过指纹识别模块采集处理:并将处理后的指纹特征值等以数据包的形式发给主控模块;主控模块发送指令包对指纹识别模块进行控制以及 ...
最新文章
- OpenAI推出数学推理证明模型,推理结果首次被数学家接受
- 从壹开始前后端分离 40 || 完美基于AOP的接口性能分析
- LeetCode周总结--第一周
- boost::intrusive::set用法的测试程序
- android 尺寸变化动画,Android ScaleAnimation类:尺寸变化动画类
- 【WC2008】【BZOJ1271】秦腾与教学评估(二分,前缀和,奇偶性乱搞)
- iOS 之 OBJECTC 调用C、OBJECTC调用C++
- VBA Excel 实践(三)Excel控件及Excel控件的初始化
- 第二代支付系统专题之报文篇(二)大额支付报文完整版(含二代新增功能业务说明)
- 都有哪些较好用的项目管理软件?
- mac安装pillow
- 分区助手扩大c盘后自动修复_C盘空间不足怎么办?分区助手教你如何扩大C盘
- 深度学习服务器?深度了解一下!
- java wgs84 百度坐标,百度坐标转WGS84(即GPS)坐标
- Netflix和它的混世猴子
- 通过关键字查询地理坐标(天地图)
- docker使用教程
- Android开发笔记(一百零八)智能语音
- UE4 蒙太奇 组合动画
- 项目文件模板-项目章程
热门文章
- python在手机上可以画图吗_python简单画图教程!python怎么在屏幕上画图
- WPF: WPF 中的 Triggers 和 VisualStateManager
- 数据结构实验报告,二叉树的基本操作(C语言)
- 博客匿名评论功能正式上线了!
- c++中的 templateclass Type
- 【数学建模】“一口价”的战略(博弈模型)
- 虚函数,虚函数表,虚函数实现原理,虚函数实现机制,虚函数解决的问题
- inventor安装未完成,某些产品无法安装的解决方法
- 利用栈将递归转换为非递归的方法
- mac电脑升级Monterey12.1版之后L2TP连接公司内网后无法正常访问的问题解决