




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 基于基于 STM32STM32 单片机开发光学指纹识别模块单片机开发光学指纹识别模块 FPM10A FPM10A 全教程全教程 收藏人 共同成长 888 2014 05 08 阅 25 转 0 来源 分享 基于基于 STM32STM32 单片机开发光学指纹识单片机开发光学指纹识 别模块别模块 FPM10A FPM10A 全教程全教程 1 平台 首先我使用的是 奋斗 STM32 开发板 MINI 板 光学指纹识别模块 FPM10A 精品文档 2欢迎下载 2 购买指纹模块 可以获得三份资料 1 简要使用说明 2 使用指纹模块的功能函数 3 FPM10A 用户手册 3 硬件搭建 根据使用说明 FPM 10A 使用标准的串口与外界通信 默认的波特率为 57600 可以与任何单片机 ARM DSP 等带串口的设备进行连接 请注 意电平转换 连接电脑需要进行电平转换 比如 MAX232 电路 FPM10AFPM10A 光学指纹模块共有光学指纹模块共有 5 5 个管脚个管脚 1 为 VCC 电源的正极接 3 6V 5 5V 的电压均可 2 为 GND 电源的负极 接地 3 为 TXD 串口的发送 4 为 RXD 串口的接收 5 为 NC 悬空不需要使用 奋斗板上已经有 5V 的管脚 可以直接供给指纹模块 这里需要注意的是 指纹模块主要通过串口进行控制 模块和 STM32 单 片机连接的时候 需要进行电平转换 这样只要把这个转接板插入 STM32 接上 5V 的电 就可以工作了 将模 块的发送端接转接板的接收端 接收端接转接板的发送端 这样 我们的硬件平台就搭建好了 4 模块的测试工作 模块成功上电后 指纹采集窗口会闪一下 表示自检正常 如果不闪 请仔细检查电源 是否接反 接错等 指纹模块使用 120MHZ 的 DSP 全 速工作 工作时芯片有一些热 经过严格的测试 这是没有问题的可以 放心使用 在不使用的时候可以关闭电源 以降低功耗 5 现在我们要进入编程环节了 指纹模块主要是通过串口进行控制 所以这里我们需要用到单片机的串 口模块 我们需要用到两个关键函数 1 使用串口发送一个字节的数据 精品文档 3欢迎下载 2 使用串口接收一个字节的数据 这里我使用的 STM32 单片 所以这两个程序如下 view source print 01 从 USART1 发送一个字节 02 void USART1 SendByte unsigned char temp 03 04 USART SendData USART1 temp 05 while USART GetFlagStatus USART1 USART FLAG TXE RESET 06 07 08 从 USART1 读取一个字节 09 unsigned char USART1 ReceivByte 10 11 unsigned char recev 12 while USART GetFlagStatus USART1 USART FLAG RXNE RESET 13 recev USART ReceiveData USART1 14 return recev 15 6 查看 FPM10A 用户手册 我们来实现比对一个指纹 我们这里假设指纹 模块中已经存在指纹模板 首先我们需要让指纹模块检测是否有指纹输入 也就是是否有手指放在 指纹模块上检测 我们来看手册上给的操作说明 我们需要发送给定的数据包给模块 发送的数据已经给我们了 现在我 们参看给我们的 C 例程 view source print 01 应答包数组 02 unsigned char dat 18 03 04 获得指纹图像 05 精品文档 4欢迎下载 06 unsigned char FP Get Img 6 0 x01 0 x00 0 x03 0 x01 0 x0 0 x05 07 08 协议包头 09 10 unsigned char FP Pack Head 6 0 xEF 0 x01 0 xFF 0 xFF 0 xFF 0 xFF 11 12 FINGERPRINT 获得指纹图像命令 13 void FINGERPRINT Cmd Get Img void 14 15 unsigned char i 16 17 for i 0 i 6 i 发送包头 18 USART1 SendByte FP Pack Head i 19 20 for i 0 i 6 i 发送命令 0 x1d 21 USART1 SendByte FP Get Img i 22 23 for i 0 i 12 i 读回应答信息 24 dat i USART1 ReceivByte 25 说明 这个函数就是检测是否有指纹输入的信息 根据用户手册 当确 认码返回值为 0 时 表示成功录入 所以 我们可以有下面的函数 view source print 01 检测指纹模块录入指纹情况 返回 00 表示录入成功 02 无手指 03 录入失败 02 unsigned char test fig 03 04 unsigned char fig dat 05 FINGERPRINT Cmd Get Img 06 Delay ms1 20 07 fig dat dat 9 08 return fig dat 09 10 11 因此 我们在主函数中可以这样调用 12 void main 13 14 if test fig 0 精品文档 5欢迎下载 15 16 do something 17 18 7 如何录入一个新的指纹信息呢 步骤如下 1 获得指纹图像 2 检测是否成功的按了指纹 3 将图像转换成特征码存放在 Buffer1 中 4 再次获得指纹图像 5 将图像转换成特征码存放在 Buffer2 中 6 转换成特征码 7 存储到指定地址上 同样的 根据用户手册 我们可以得到以下这样的模块 当调用的时候 你只要给这个函数附上两个值就可以了 例如 unsigned char FP add new user 00 01 如果你下次再次写入这个地址 以前存储的指纹模板信息将被覆盖 view source print 01 添加一个新的指纹 02 unsigned char FP add new user unsigned char ucH user unsign ed char ucL user 03 04 do 05 06 FINGERPRINT Cmd Get Img 获得指纹图像 07 while dat 9 0 x0 检测是否成功的按了指纹 08 09 FINGERPRINT Cmd Img To Buffer1 将图像转换成特征码存放 在 Buffer1 中 10 11 do 12 13 FINGERPRINT Cmd Get Img 获得指纹图像 14 while dat 9 0 x0 15 16 FINGERPRINT Cmd Img To Buffer2 将图像转换成特征码存放 在 Buffer2 中 17 18 FINGERPRINT Cmd Reg Model 转换成特征码 19 20 FINGERPRINT Cmd Save Finger ucH user ucL user 精品文档 6欢迎下载 21 22 return 0 23 24 25 存储模版到特定地址 26 void FINGERPRINT Cmd Save Finger unsigned char ucH Char unsigned char ucL Char 27 28 unsigned long temp 0 29 unsigned char i 30 31 FP Save Finger 5 ucH Char 32 FP Save Finger 6 ucL Char 33 34 for i 0 i 8 存放校验数据 38 FP Save Finger 8 temp 39 40 41 for i 0 i 6 i 42 USART1 SendByte FP Pack Head i 发送包头 43 44 for i 0 i 9 i 45 USART1 SendByte FP Save Finger i 发送命令将图像转换成 特征码存放 CHAR buffer1 46 47 for i 0 i 12 i 48 dat i USART1 ReceivByte 49 8 如何删除一个模板 view source print 01 删除所有指纹模版 02 void FINGERPRINT Cmd Delete All Model void 03 04 unsigned char i 05 06 for i 0 i 6 i 发送包头 07 USART1 SendByte FP Pack Head i 08 精品文档 7欢迎下载 09 for i 0 i 6 i 发送命令 0 x1d 10 USART1 SendByte FP Delet All Model i 11 12 for i 0 i 12 i 读回应答信息 13 dat i USART1 ReceivByte 14 9 如何获取已经存取的指纹模板信息 这个模块一共可以存储 0 999 枚指纹信息 view source print 01 搜索全部用户 999 枚 02 void FINGERPRINT Cmd Search Finger void 03 04 unsigned char i 05 发送命令搜索指纹库 06 for i 0 i 6 i 07 08 USART1 SendByte FP Pack Head i 09 10 11 for i 0 i 11 i 12 13 USART1 SendByte FP Search i 14 15 16 for i 0 i 16 i 17 18 dat i USART1 ReceivByte 19 20 根据用户手册 我们可以从应答包中得出模块中已经存在指纹数量的大 小 这样 我们就轻松把指纹模块搞定 下面我附上基于 STM32 单片机光学指纹识别模块 FPM10A 打包好的函 数库 第一个是 FPM10A c view source print 001 include stm32f10 x h 002 include stm32f10 x usart h 精品文档 8欢迎下载 003 include misc h 004 unsigned char dat 18 005 006 FINGERPRINT 通信协议定义 007 unsigned char FP Pack Head 6 0 xEF 0 x01 0 xFF 0 xFF 0 xFF 0 xFF 协议包头 008 unsigned char FP Get Img 6 0 x01 0 x00 0 x03 0 x01 0 x0 0 x05 获得指纹图像 009 unsigned char FP Templete Num 6 0 x01 0 x00 0 x03 0 x1D 0 x00 0 x21 获得模版总数 010 unsigned char FP Search 11 0 x01 0 x0 0 x08 0 x04 0 x01 0 x0 0 x0 0 x03 0 xA1 0 x0 0 xB2 搜索指纹搜索范围 0 929 011 unsigned char FP Search 0 9 11 0 x01 0 x0 0 x08 0 x04 0 x01 0 x0 0 x0 0 x0 0 x13 0 x0 0 x21 搜索 0 9 号指纹 012 unsigned char FP Img To Buffer1 7 0 x01 0 x0 0 x04 0 x02 0 x0 1 0 x0 0 x08 将图像放入到 BUFFER1 013 unsigned char FP Img To Buffer2 7 0 x01 0 x0 0 x04 0 x02 0 x0 2 0 x0 0 x09 将图像放入到 BUFFER2 014 unsigned char FP Reg Model 6 0 x01 0 x0 0 x03 0 x05 0 x0 0 x09 将 BUFFER1 跟 BUFFER2 合成特征模版 015 unsigned char FP Delet All Model 6 0 x01 0 x0 0 x03 0 x0d 0 x 00 0 x11 删除指纹模块里所有的模版 016 unsigned char FP Save Finger 9 0 x01 0 x00 0 x06 0 x06 0 x01 0 x00 0 x0B 0 x00 0 x19 将 BUFFER1 中的特征码存放到指定的位置 017 unsigned char FP Delete Model 10 0 x01 0 x00 0 x07 0 x0C 0 x0 0 x0 0 x0 0 x1 0 x0 0 x0 删除指定的模版 018 019 020 从 USART1 发送一个字节 021 void USART1 SendByte unsigned char temp 022 023 USART SendData USART1 temp 024 while USART GetFlagStatus USART1 USART FLAG TXE RESET 025 026 027 从 USART1 读取一个字节 028 unsigned char USART1 ReceivByte 029 030 unsigned char recev 031 while USART GetFlagStatus USART1 USART FLAG RXNE RESET 032 recev USART ReceiveData USART1 033 return recev 精品文档 9欢迎下载 034 035 FINGERPRINT 命令字 036 FINGERPRINT 获得指纹图像命令 037 void FINGERPRINT Cmd Get Img void 038 039 unsigned char i 040 041 for i 0 i 6 i 发送包头 042 USART1 SendByte FP Pack Head i 043 044 for i 0 i 6 i 发送命令 0 x1d 045 USART1 SendByte FP Get Img i 046 047 for i 0 i 12 i 读回应答信息 048 dat i USART1 ReceivByte 049 050 051 删除所有指纹模版 052 void FINGERPRINT Cmd Delete All Model void 053 054 unsigned char i 055 056 for i 0 i 6 i 发送包头 057 USART1 SendByte FP Pack Head i 058 059 for i 0 i 6 i 发送命令 0 x1d 060 USART1 SendByte FP Delet All Model i 061 062 for i 0 i 12 i 读回应答信息 063 dat i USART1 ReceivByte 064 065 066 讲图像转换成特征码存放在 Buffer1 中 067 void FINGERPRINT Cmd Img To Buffer1 void 068 069 unsigned char i 070 for i 0 i 6 i 发送包头 071 072 USART1 SendByte FP Pack Head i 073 074 for i 0 i 7 i 发送命令 将图像转换成 特征码 存放在 CHAR buffer1 075 076 USART1 SendByte FP Img To Buffer1 i 精品文档 10欢迎下载 077 078 for i 0 i 12 i 读应答信息 079 080 dat i USART1 ReceivByte 把应答数据存放到缓冲区 081 082 083 084 将图像转换成特征码存放在 Buffer2 中 085 void FINGERPRINT Cmd Img To Buffer2 void 086 087 unsigned char i 088 for i 0 i 6 i 发送包头 089 090 USART1 SendByte FP Pack Head i 091 092 093 for i 0 i 7 i 发送命令 将图像转换成 特征码 存放在 CHAR buffer1 094 095 USART1 SendByte FP Img To Buffer2 i 096 097 for i 0 i 12 i 098 099 dat i USART1 ReceivByte 读回应答信息 100 101 102 103 将 BUFFER1 跟 BUFFER2 中的特征码合并成指纹模版 104 void FINGERPRINT Cmd Reg Model void 105 106 unsigned char i 107 108 for i 0 i 6 i 包头 109 110 USART1 SendByte FP Pack Head i 111 112 113 for i 0 i 6 i 命令合并指纹模版 114 115 USART1 SendByte FP Reg Model i 116 117 118 for i 0 i 12 i 119 精品文档 11欢迎下载 120 dat i USART1 ReceivByte 121 122 123 124 存储模版到特定地址 125 void FINGERPRINT Cmd Save Finger unsigned char ucH Char unsigned charucL Char 126 127 unsigned long temp 0 128 unsigned char i 129 130 FP Save Finger 5 ucH Char 131 FP Save Finger 6 ucL Char 132 133 134 for i 0 i 8 存放校验数据 138 FP Save Finger 8 temp 139 140 141 for i 0 i 6 i 142 USART1 SendByte FP Pack Head i 发送包头 143 144 for i 0 i 9 i 145 USART1 SendByte FP Save Finger i 发送命令 将图像转换 成 特征码 存放在 CHAR buffer1 146 147 for i 0 i 12 i 148 dat i USART1 ReceivByte 149 150 151 获得指纹模板数量 152 void FINGERPRINT Cmd Get Templete Num void 153 154 unsigned int i 155 156 for i 0 i 6 i 包头 157 USART1 SendByte FP Pack Head i 158 159 发送命令 0 x1d 160 for i 0 i 6 i 161 USART1 SendByte FP Templete Num i 精品文档 12欢迎下载 162 163 for i 0 i 12 i 164 dat i USART1 ReceivByte 165 166 167 搜索全部用户 999 枚 168 void FINGERPRINT Cmd Search Finger void 169 170 unsigned char i 171 发送命令搜索指纹库 172 for i 0 i 6 i 173 174 USART1 SendByte FP Pack Head i 175 176 177 for i 0 i 11 i 178 179 USART1 SendByte FP Search i 180 181 182 for i 0 i 16 i 183 184 dat i USART1 ReceivByte 185 186 187 188 搜索用户 0 9 枚 189 void FINGERPRINT Cmd Search Finger Admin void 190 191 unsigned char i 192 for i 0 i 6 i 发送命令搜索指纹库 193 194 USART1 SendByte FP Pack Head i 195 196 197 for i 0 i 11 i 198 199 USART1 SendByte FP Search 0 9 i 200 201 202 for i 0 i 12 i 203 dat i USART1 ReceivByte 204 205 精品文档 13欢迎下载 206 添加一个新的指纹 207 unsigned char FP add new user unsigned char ucH user unsig ned char ucL user 208 209 do 210 211 FINGERPRINT Cmd Get Img 获得指纹图像 212 while dat 9 0 x0 检测是否成功的按了指纹 213 214 FINGERPRINT Cmd Img To Buffer1 将图像转换成特征码存 放在 Buffer1 中 215 216 do 217 218 FINGERPRINT Cmd Get Img 获得指纹图像 219 while dat 9 0 x0 220 221 FINGERPRINT Cmd Img To Buffer2 将图像转换成特征码存 放在 Buffer2 中 222 223 FINGERPRINT Cmd Reg Model 转换成特征码 224 225 FINGERPRINT Cmd Save Finger ucH user ucL user 226 227 return 0 228 第 2 个 FPM10A h view source print 01 ifndef FPM10A H 02 define FPM10A H 03 include 04 05 extern unsigned char dat 18 06 07 extern void FINGERPRINT Cmd Get Img 08 extern void FINGERPRINT Cmd Img To Buffer1 09 extern void FINGERPRINT Cmd Img To Buffer2 10 ext
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- output-10-造纸工艺工程师(涂布)岗位面试问题及答案
- 电诈防范知识培训课件
- 高速车道基础知识培训课件
- 电解池工作原理
- 电芯电池基础知识培训
- 电脑钉钉直播显示课件
- 湖南省岳阳市汨罗市第一中学2025-2026学年高二上学期开学考试物理试卷
- 建设项目环境影响评价服务合同
- rap考试题及答案
- pcr考试试题及答案
- 肿瘤二代测序基因检测技术应用与进展
- 上海同济医院管理制度
- 2025年高考北京卷语文真题作文记叙文深度点评与分析
- 小学生队形队列班会课件
- 地中海贫血护理业务查房
- 华科版七年级信息技术《身边信息-用心感知》
- 职业技术学院运动健康指导专业人才培养方案
- T/CIE 165-2023企业级固态硬盘测试规范第1部分:功能测试
- 离婚后小孩学费协议书
- 初中学校学科竞赛策划工作计划
- 《文献检索与综述实训教程》课件第一章
评论
0/150
提交评论