目录
前言
由于项目需要指纹识别,简单研究了一下,只是提供一种思路,本文并没有直接的解决办法的。若有其他思路,欢迎讨论。
一、硬件
材料:USB转TTL、AS608指纹模块、杜邦线;淘宝共计47.8元。
二、软件实现思路
1.连接串口
- 查看Qt相关文档,使用serialport模块
- 连接串口时遇到的问题:指针忘记初始化、总是程序异常结束。
- 成功打开串口。
2.Qt读as608系统基本参数的实现
模拟串口模拟器的实现思路,发送命令->发送成功后立及得到应答指令->对命令进行拆解,解读,即可成功实现。注意:一般的字符串是字符形式,可以将字符串转换为十六进制,进行发送,更好的进行验证。
笔记1:进制、字符串转换
QString str = "1F";//十六进制字符串
int strInt = str.toInt(nullptr,10);//十进制
QString s = QString("%1").arg(strInt,0,16);//十进制转换为十六进制字符
笔记2:QStringList知识点,注意,QStringList最大检索为32位。
3.对其中的一个命令进行解读
- 输入参数:本功能需要输入的参数,有的是BufferID,有的是StartPage(起始页码),有的是none(什么都不需要输入)。
- 指令包格式:即要输入的指令格式,芯片地址为FFFFFFFF(AS60x一类的手册上有写明)。本指令为:0xEF01FFFFFFFF010003010005(可不加0x)
- 应答包格式:即输入正确的指令包格式之后,由指纹器返回的数据。0xEF01FFFFFFFF070003+确认码+校验和(校验和是从包标识至校验和之间所有字节之和,超出 2 字节的进位忽略)
- 其他:其余命令同样处理。如果需要确认发出的包或接受的包是否正确,可通过串口调试软件进行测试。