码迷,mamicode.com
首页 > 其他好文 > 详细

pcduino指纹门禁开发–篇二

时间:2015-06-17 11:36:48      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:pcduino指纹开发   pcduino   指纹开发   

讲了一篇的配置。下面也要讲一下正文啦。

开始拿zfm-206指纹开刀啦。

首先介绍一下zfm-206有两种类型。一种是usb型。另外一种是uart。鉴于个人需要,uart走起。

 

既然打算在pcduino 上用uart来做指纹门禁的应用,那自然少不了串口设置,虽然网上教程烂大街。但还是说一下几个重要的一点,个人觉得这是比配置串口波特率,数据位停止位更有技术的一个,很多人是只知其然而不知其所以然,我也就在重申一下这个话题

 

串口打开参数

fd = open(“/dev/ttyS1″,O_RDWR|O_NOCTTY);

if(——-)

——-此处省略一万字

你知道这里打开了设备文件,但是你知道这些通信参数的意义吗? 逗比。。。。

简单说几个常用的

O_RDWR 读写方式打开;

O_NOCTTY 不允许进程管理串口(告诉Unix这个程序不想成为“控制终端”控制的 程序,不说明这个标志的话,任何输入都会影响你的程序。

O_NDELAY:告诉Unix这个程序不关心DCD信号线状态,即其他端口是 否运行,不说明这个标志的话,该程序就会在DCD信号线为低电平时停止。

 

至于设置波特率等。自己上网自行查询。没什么技术含量。全国人民都一样

 

串口设置完毕。开始撸指纹程序

 

根据zfm-206官方提供的手册来看,控制该指纹主要通过uart发送串口指令,指纹默认参数为:波特率:57600(可更改),数据位:8 停止位1

 

指纹首先发送的是包头验证。如果验证信息正确,便会返回一串16进制的确认码

 

贴一下指纹握手验证信息16进制发送格式

 

包头 地址 包标识 包长度 包内容(指令/数据/参数/确认码) 校验和

技术分享

 

每个指令都是一定的16进制数据码。如图下

技术分享

 

小编goofy在这里要强调一个问题,串口发送数据,是以2进制发送,所以,你如果直接发送 ‘1’,那么收到的将是它的十进制ascll码,小编goofy曾经用蓝牙亲测。

原因:串口以2进制发送数据,把1当成了字符处理,以二进制传送便是0011 0001 。那么到了串口那边接到的数据是0011 0001,转换成10进制是49.所以传送过去,串口真正接受到的数据是49.而不是1.。希望大家不要在这里栽跟头。

 

解决方法之一:

申请内存空间发送:

下面晒一下小编goofy的程序

技术分享

小编goofy最后提醒一点,题外话啊。也是大家容易犯错的一点用完空间大家可能会及时释放,但是也要管好你定义的指针。不要乱指哦。切忌野指针

晒一下我的指纹录取和检测模式流程图

 

录取指纹

技术分享

搜索指纹

技术分享

更多文章关注goofyy技术宅的博客。传送门:http://www.goofyy.com/

pcduino指纹门禁开发–篇二

标签:pcduino指纹开发   pcduino   指纹开发   

原文地址:http://blog.csdn.net/u014406672/article/details/46531053

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!