(错误都已改正)AS608指纹+STM32串口通信录入或删除指纹
目录
一、硬件使用分类
1.整体图展示
2.STM32F103RCT6单片机
3.AS608指纹模块
4.USB转TTL
二、软件设计
1.接线设计
2.程序设计
一、硬件使用分类
1.整体图展示
采用STM32F103RCT6作为主控制器
2.STM32F103RCT6单片机
STM32F103RCT6不含USB转TTL芯片,需要外界接入
下图为STM32F103RCT6原理图
其中在RCT6中PA9,PA10为板子的USART1,原理图中并没有出现以上俩引脚,其引脚在为板子上标识的TX,RX
以下是工程中USART1的初始化程序设计
void uart_init(u32 bound){//GPIO端口设置GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟//USART1_TX GPIOA.9GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9//USART1_RX GPIOA.10初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10 //Usart1 NVIC 配置NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器//USART 初始化设置USART_InitStructure.USART_BaudRate = bound;//串口波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式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(USART1, &USART_InitStructure); //初始化串口1USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断USART_Cmd(USART1, ENABLE); //使能串口1 }
在上面的程序段中,我们可以清晰的看出来PA9,PA10都可以使用,PA9为TX,PA10为RX。
3.AS608指纹模块
AS608指纹识别模块是ALIENTEK推出的一款高性能的光学指纹识别模块。AS608模块采用了国内著名指纹识别芯片公司杭州晟元芯片技术有限公司(Synochip)的 AS608指纹识别芯片。芯片内置DSP运算单元,集成了指纹识别算法,能高效快速采集图像并识别指纹特征。模块配备了串口、USB通讯接口,用户无需研究复杂的图像处理及指纹识别算法,只需通过简单的串口、USB 按照通讯协议便可控制模块。本模块可应用于各种考勤机、保险箱柜、指纹门禁系统、指纹锁等场合。
下面是AS608的一些具体参数:
供电电压 | 3.3V(切勿使用5V,容易烧毁芯片) |
供电电流 | < 60mA |
指纹图像录入时间 | < 1s |
搜索时间 | < 1.0s(1:500时,均值) |
可录入指纹数量 | 300 |
通讯接口 | USB/USART |
匹配方式 | 比对方式(1:1),搜索方式(1:N) |
注意!!!! AS608指纹模块切勿接5V,一定要接3.3V
注意!!!! AS608指纹模块切勿接5V,一定要接3.3V
注意!!!! AS608指纹模块切勿接5V,一定要接3.3V
如果不相信的话可以去试试(如果你是土豪的话,完全跳过这一条)
下面俩个图就是我们AS608指纹模块的引脚解释:
D+和D-不用接,就算你想接也不一定能接上,反正根本就没有那俩跟线的引脚。
其中5线(蓝线)这个引脚就是作为我们输出的引脚,话说每个模块到头来都是个开关而已,就是开关的启动方式不同罢了。
4.USB转TTL
这个就不做过多介绍了,都是大家常用的东西。
二、软件设计
1.接线设计
AS608指纹模块与单片机接线
VCC | GND | TX | RX | TCH | UA |
3.3V | GND | PA3 | PA2 | PA6 | 3.3V |
USB转TTL与单片机接线
VCC | GND | TX | RX |
5V | GND | RX(PA10) | TX(PA9) |
在RCT6中标识的是TX与RX,其实他们就是单片机上的PA10,PA9上面已经解释过了,这里就不做过多的解释了。
2.程序设计
程序是按照正点原子中的历程进行修改的,此处使用的是串口进行操作的
对于AS608指纹模块我们首先要进行握手,换句话也就是通过发送特定的16进制数据将单片机与模块进行连接而已了。
printf("AS608指纹模块串口操作\r\n");printf("作者:十里承欢-\r\n");printf("尝试连接AS608中.....\r\n");while(PS_HandShake(&AS608Addr))//与AS608模块握手{printf("未连接上AS608!\r\n");delay_ms(1000);printf("再次尝试连接中....\r\n");delay_ms(1000); }//连接模块成功,初始化printf("连接成功!!\r\n");str=mymalloc(30);sprintf(str,"波特率:%d 地址:%x",usart2_baund,AS608Addr);//显示波特率printf("%s",str);delay_ms(100);
在握手过程中
1.发送包头:也就是0XEF、0X01
2.发送地址:AS608的默认地址是0XFFFFFFFF
3.发送0X01、0X00、0X00等待AS608响应,对比响应的数据即可完成握手
//与AS608握手 PS_HandShake
//参数: PS_Addr地址指针
//说明: 模块返新地址(正确地址)
u8 PS_HandShake(u32 *PS_Addr)
{SendHead();SendAddr();MYUSART_SendData(0X01);MYUSART_SendData(0X00);MYUSART_SendData(0X00); delay_ms(200);if(USART2_RX_STA&0X8000)//接收到数据{ if(//判断是不是模块返回的应答包 USART2_RX_BUF[0]==0XEF&&USART2_RX_BUF[1]==0X01&&USART2_RX_BUF[6]==0X07){*PS_Addr=(USART2_RX_BUF[2]<<24) + (USART2_RX_BUF[3]<<16)+(USART2_RX_BUF[4]<<8) + (USART2_RX_BUF[5]);USART2_RX_STA=0;return 0;}USART2_RX_STA=0; }return 1;
}
然后按照内容提示进行操做
按下KEY1键就是录入指纹
此时需要我们填写指纹的位置,由于该模块最多就能储存300个指纹,所以位置就是1~300中任何一个数。
我们的指纹已经被成功录入。
我们可以进行指纹读取:
在红框框住的,前面是我们的指纹位置,后面是我们的等级,也就是相似程度,可以这样理解。
剩下的功能就不过多演示了,基本跟着提示来就没有问题。
希望大家好好看看用户手册,我把链接放到下面:
百度网盘 请输入提取码 提取码:dte5
程序链接:百度网盘 请输入提取码 提取码:rq79
上面我也说过,可以通过TCH引脚进行一系列操作以及拓展,希望大家加油!!!!!
(错误都已改正)AS608指纹+STM32串口通信录入或删除指纹相关推荐
- STM32串口通信详解以及通信异常或者卡死常见问题分析
STM32串口通信详解以及通信异常或者卡死常见问题分析 目录 STM32串口通信详解以及通信异常或者卡死常见问题分析 一.常见的异常问题 二.STM32的串口简介 1.串口的通讯方式 ①按数据传输方向 ...
- STM32串口通信学习总结
STM32串口通信学习总结 1.概述 1.1学习目的 ...
- STM32——串口通信
STM32--串口通信 宗旨:技术的学习是有限的,分享的精神是无限的. 一.异步串口通信协议 STM32 的串口非常强大,它不仅支持最基本的通用串口同步.异步通信,还具有 LIN 总线功能(局域互联网 ...
- Ardunio下的STM32串口通信
文章目录 任务要求 Ardunio下的STM32串口通信 软件准备 编译烧录 标准库函数与HAL库函数的stm32编程方式差异 国人版的MCU集成开发平台 stduino IDE 总结 任务要求 安装 ...
- STM32串口通信详解(嵌入式学习)
STM32串口通信 1.通信基础知识 1.1 时钟信号区分 同步通信 异步通信 波特率 总线协议(电气协议) 1.2 通信方式划分 串行通信 并行通信 1.3 通信方向划分 单工通信 半双工通信 全双 ...
- K210学习笔记(一) K210与STM32串口通信相关
文章目录 前言 一.STM32 串口中断 接收K210板子发送的ASCII码整数 转换为 多位整形数据 二.MAIX BIT(K210)与STM32串口通讯 2.1 实现MAIX BIT与XCOM之间 ...
- stm32串口通信(初学者对于串口通信的理解)
stm32串口通信(初学者对于串口通信的理解) 标签: stm32串口通信单片机 2015-01-24 10:12 987人阅读 评论(0) 收藏 举报 分类: stm32 版权声明:本文为博主原创 ...
- STM32串口通信中使用printf发送数据配置方法 开发环境 Keil
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 已有 12456 次阅读2011-6-29 23:29 | 在STM32串口通信程序中使用printf发送数据, ...
- openmv和stm32串口通信完成二维码识别
openmv和stm32串口通信完成二维码识别 文章目录 前言 一.所用的硬件: 二.openmv端 2.stm32端 总结 前言 注:我只是个大一的小白,本文只完成基本功能,希望能帮助有困惑的人(我 ...
最新文章
- 2018未来科学大奖揭晓:袁隆平、马大为、林本坚等7位科学家获奖
- [C++学习笔记](double*)malloc(n * sizeof(double));
- redis的学习使用,第四章
- windows 安装yaml支持和pytest支持等
- TCP三次握手及四次挥手详细图解(转)
- 安装提示没有安装包docker(转载)
- Data Binding的使用总结
- HaDoop安装配置笔记
- E-prime debug
- 信息系统集成监理费收取标准_信息产业部信息系统工程监理与咨询服务收费参考标准Word1...
- ES分片UNASSIGNED解决方案(ALLOCATION_FAILED,REPLICA_ADDED,NODE_LEFT,REINITIALIZED,CLUSTER_RECOVERED等等)
- 棱镜为什么能把阳光分成七色呢?
- windows如何切换到administrtor用户
- Android Q访问公共外部存储受限
- 在OpenGL中创建一个球体动画,使球体在窗口内做自由落体运动,并在撞击地面后能够返回原来高度
- Android 联想K5 Play 8.0 Notification突破拦截(vdex反编译 )
- 加密芯片十大品牌对比
- SpringBoot整合knif4j Api文档
- SAAS 客服云平台市场调研报告
- Google域名解析的游戏?