问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机开发,指纹识别模块,光学的指纹识别模块好还是电容式指纹识别模块...

发布网友 发布时间:2024-01-13 16:20

我来回答

3个回答

热心网友 时间:2024-08-02 17:41

仅供参考。

FPM10A光学指纹模块简要使用说明
1.引脚
FPM10A使用1.0MM FPC 上接插座引出了5个引脚,在板子上有标1的位置为第一引脚。五个引脚的作用依次为:
1 为 VCC 电源的正极接 3.6V– 5.5V的电压均可。
2 为 GND 电源的负极接地。
3 为 TXD 串口的发送。
4 为 RXD 串口的接收。
5 为 NC 悬空不需要使用。

2.串口
FPM10A使用标准的串口与外界通信,默认的波特率为57600,可以进行更改,请参考通信协议。可以与任何单片机,ARM,DSP等带串口的设备进行连接,请注意电平转换,连接电脑需要进行电平转换,比如MAX232电路。3.3V 5V的单片机可以直接连接。

3.关于模块的检测
模块成功上电后,指纹采集窗口会闪一下,表示自检正常,如果不闪,请仔细检查电源,是否接反,接错等。

4.指纹模块的温度
指纹模块使用120MHZ的DSP全速工作,工作时芯片有一些热,经过严格的测试,这是没有问题的可以放心使用,在不使用的时候可以关闭电源,以降低功耗。

volatile unsigned char UART1_FINGERPRINT_RECEVICE_BUFFER[24];

//FINGERPRINT通信协议定义
unsigned char FP_Pack_Head[6] = {0xEF,0x01,0xFF,0xFF,0xFF,0xFF}; //协议包头
unsigned char FP_Get_Img[6] = {0x01,0x00,0x03,0x01,0x0,0x05}; //获得指纹图像
unsigned char FP_Templete_Num[6] ={0x01,0x00,0x03,0x1D,0x00,0x21 }; //获得模版总数
unsigned char FP_Search[11]={0x01,0x0,0x08,0x04,0x01,0x0,0x0,0x03,0xA1,0x0,0xB2}; //搜索指纹搜索范围0 - 929
unsigned char FP_Search_0_9[11]={0x01,0x0,0x08,0x04,0x01,0x0,0x0,0x0,0x13,0x0,0x21}; //搜索0-9号指纹
unsigned char FP_Img_To_Buffer1[7]={0x01,0x0,0x04,0x02,0x01,0x0,0x08}; //将图像放入到BUFFER1
unsigned char FP_Img_To_Buffer2[7]={0x01,0x0,0x04,0x02,0x02,0x0,0x09}; //将图像放入到BUFFER2
unsigned char FP_Reg_Model[6]={0x01,0x0,0x03,0x05,0x0,0x09}; //将BUFFER1跟BUFFER2合成特征模版
unsigned char FP_Delet_All_Model[6]={0x01,0x0,0x03,0x0d,0x00,0x11};//删除指纹模块里所有的模版
volatile unsigned char FP_Save_Finger[9]={0x01,0x00,0x06,0x06,0x01,0x00,0x0B,0x00,0x19};//将BUFFER1中的特征码存放到指定的位置
volatile unsigned char FP_Delete_Model[10]={0x01,0x00,0x07,0x0C,0x0,0x0,0x0,0x1,0x0,0x0}; //删除指定的模版
//volatile unsigned char FINGER_NUM;

/*------------------ FINGERPRINT命令字 --------------------------*/

//FINGERPRINT_获得指纹图像命令
void FINGERPRINT_Cmd_Get_Img(void)
{
unsigned char i;

for(i=0;i<6;i++) //发送包头
UART1_Send_Byte(FP_Pack_Head[i]);

for(i=0;i<6;i++) //发送命令 0x1d
UART1_Send_Byte(FP_Get_Img[i]);
}

//讲图像转换成特征码存放在Buffer1中
void FINGERPRINT_Cmd_Img_To_Buffer1(void)
{
unsigned char i;

for(i=0;i<6;i++) //发送包头
{
UART1_Send_Byte(FP_Pack_Head[i]);
}

for(i=0;i<7;i++) //发送命令 将图像转换成 特征码 存放在 CHAR_buffer1
{
UART1_Send_Byte(FP_Img_To_Buffer1[i]);
}
}

//将图像转换成特征码存放在Buffer2中
void FINGERPRINT_Cmd_Img_To_Buffer2(void)
{
unsigned char i;
for(i=0;i<6;i++) //发送包头
{
UART1_Send_Byte(FP_Pack_Head[i]);
}

for(i=0;i<7;i++) //发送命令 将图像转换成 特征码 存放在 CHAR_buffer1
{
UART1_Send_Byte(FP_Img_To_Buffer2[i]);
}
}

//将BUFFER1 跟 BUFFER2 中的特征码合并成指纹模版
void FINGERPRINT_Cmd_Reg_Model(void)
{
unsigned char i;

for(i=0;i<6;i++) //包头
{
UART1_Send_Byte(FP_Pack_Head[i]);
}

for(i=0;i<6;i++) //命令合并指纹模版
{
UART1_Send_Byte(FP_Reg_Model[i]);
}

}

//删除指纹模块里的所有指纹模版
void FINGERPRINT_Cmd_Delete_All_Model(void)
{
unsigned char i;

for(i=0;i<6;i++) //包头
UART1_Send_Byte(FP_Pack_Head[i]);

for(i=0;i<6;i++) //命令合并指纹模版
UART1_Send_Byte(FP_Delet_All_Model[i]);
}

//删除指纹模块里的指定指纹模版
void FINGERPRINT_Cmd_Delete_Model(unsigned int uiID_temp)
{
volatile unsigned int uiSum_temp = 0;
unsigned char i;

FP_Delete_Model[4]=(uiID_temp&0xFF00)>>8;
FP_Delete_Model[5]=(uiID_temp&0x00FF);

for(i=0;i<8;i++)
uiSum_temp = uiSum_temp + FP_Delete_Model[i];

//UART0_Send_Byte(uiSum_temp);

FP_Delete_Model[8]=(uiSum_temp&0xFF00)>>8;
FP_Delete_Model[9]=uiSum_temp&0x00FF;

for(i=0;i<6;i++) //包头
UART1_Send_Byte(FP_Pack_Head[i]);

for(i=0;i<10;i++) //命令合并指纹模版
UART1_Send_Byte(FP_Delete_Model[i]);
}

//获得指纹模板数量
void FINGERPRINT_Cmd_Get_Templete_Num(void)
{ unsigned int i;
unsigned char temp[14];

for(i=0;i<6;i++) //包头
UART1_Send_Byte(FP_Pack_Head[i]);

//发送命令 0x1d
for(i=0;i<6;i++)
UART1_Send_Byte(FP_Templete_Num[i]);

}

//搜索全部用户999枚
void FINGERPRINT_Cmd_Search_Finger(void)
{
unsigned char i;
for(i=0;i<6;i++) //发送命令搜索指纹库
{
UART1_Send_Byte(FP_Pack_Head[i]);
}

for(i=0;i<11;i++)
{
UART1_Send_Byte(FP_Search[i]);
}

}

//搜索全部用户999枚
void FINGERPRINT_Cmd_Search_Finger_Admin(void)
{
unsigned char i;
for(i=0;i<6;i++) //发送命令搜索指纹库
{
UART1_Send_Byte(FP_Pack_Head[i]);
}

for(i=0;i<11;i++)
{
UART1_Send_Byte(FP_Search_0_9[i]);
}

}

void FINGERPRINT_Cmd_Save_Finger( unsigned char ucH_Char,unsigned char ucL_Char )
{
unsigned long temp = 0;
unsigned char i;

// SAVE_FINGER[9]={0x01,0x00,0x06,0x06,0x01,0x00,0x0B,0x00,0x19};//将BUFFER1中的特征码存放到指定的位置

FP_Save_Finger[5] = ucH_Char;
FP_Save_Finger[6] = ucL_Char;

for(i=0;i<7;i++) //计算校验和
temp = temp + FP_Save_Finger[i];

FP_Save_Finger[7]=(temp & 0x00FF00) >> 8; //存放校验数据
FP_Save_Finger[8]= temp & 0x0000FF;

for(i=0;i<6;i++)
UART1_Send_Byte(FP_Pack_Head[i]); //发送包头

for(i=0;i<9;i++)
UART1_Send_Byte(FP_Save_Finger[i]); //发送命令 将图像转换成 特征码 存放在 CHAR_buffer1
}

//接收反馈数据缓冲
void FINGERPRINT_Recevice_Data(unsigned char ucLength)
{
unsigned char i;

for (i=0;i<ucLength;i++)
UART1_FINGERPRINT_RECEVICE_BUFFER[i] = UART1_Receive_Byte();

}

热心网友 时间:2024-08-02 17:42

电容的

热心网友 时间:2024-08-02 17:45

必须光学的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
诺基亚5320信号问题 诺基亚5320手机信号满别人打不进来电话是怎么回事? 诺基亚5320接电话每次自动信号断掉为什么? 诺基亚5320手机为什么有时候接听按键接不了电话,而平常玩手机接听键没... 诺基亚5320接不到电话 但是在通话记录里有 5320接不到电话 二手房多久能贷款下来 二手房贷多久能够放款 二手房贷审核通过多久放款 二手房贷款审核后多久能放款? 二手房银行放贷后多久 大连海事大学考研601高等数学是自主命题吗?真题能买到吗? 博士伦隐形眼镜药水最近有什么问题 违法记录能消除吗,要多久可以消除 U盘无法格式化,显时正在使用该驱动盘里的程序? 为什么现在很多年轻人都不爱发朋友圈了? 点痣掉痂有红印怎么办 ps字体在哪个文件夹? 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 厨师机北美还是海氏好? 能量钵的作用 一年只能改一次怎么改第二次? 房子里有老鼠怎么驱赶 卵巢癌患者吃什么食物可以缓解病情 八宝饭可以用大米吗 姓祝木字旁草字头男孩名字 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 小米12缺点 可以第三次更改吗?什么后台收费可以修改是真的吗? 含泰社区车牌号是多少 我要考大连海事大学的海商法,朋友提供的真题不全,请问哪里能获得到11... 广东音乐是什么 ...混血儿算中国人吗?可以领中国身份证吗?那民族是什么了? 英雄联盟下载了安装不了! 我捡到一只信鸽,他两只脚上都有号,一只是2966 鸽子。另一只上有个白环... 玩LOL的时候,电脑老是自动切换桌面。 ...一般小诊所5%葡萄糖注射液,一瓶氯化钠注射液,输一次液多少钱啊... 未满一年怎么改第二次 金雀异黄素的金雀异黄素用于癌症预防作用研究 u盘内容下载过程,下载了安装不起,说是在另一个程序中已使用 ...我双击打不开,然后提示另外一个程序在占用。右击就可以一下打开_百... 点痣七八天后自己弄掉痂有红印怎么办? 揭秘内墙涂料的施工工艺和注意事项 ...达人知道氯化钠注射0.9%250ML和萄葡糖0.5%250ML的各多少钱一瓶... 大连海事大学有卖考研真题的吗? 当我要拔除u盘时显示:“通用卷正在被另一个程序调用,现在无法拔出”_百... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 乐高未来骑士团游戏 21度适合穿。裙子吗? 一年内第二次修改技巧