pcduino指纹门禁开发–篇一

传送门: goofyy技术宅


小编其实在之前写过这篇文章,这里主要是新建网站,博客迁移一下吧。转载须注明哦。


目标机:ARM pcduino v2 (操作系统:android 4.2)

宿主机:ubuntu 12.04 (64 bit)

交叉编译器 :arm-linux-androideabi-gcc

指纹型号:zfm-206 (uart接口)

 

小编最近要做一个智能家居项目来参加比赛,中途用到指纹识别,想来自己写一个吧,也是蛮好玩的。

小编的程序基于C库,需要交叉编译放到目标机(pcduino).由于小编是在android系统上面做的,所以用的交叉编译器是arm-linux-androideabi-gcc.如果是放到linux系统上面可以选择arm-linux-gcc等等交叉便器。在此小编不再赘余交叉编译环境的搭建。直接上手吧。

—–>首先先恶补一点小知识

UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来主机与辅助设备通信。当然也是嵌入式通信当中比较重要的一种通信模式。

既然小编的教程有用到uart,自然少不了说一下uart的串口工作模式。至于串口的一些常用设置,只想说一句,网上烂大街。同时也希望大家能真正的写点自己的东西出来。小编这里只说一下串口常用的几点,以及容易出错的几点。

linux串口波特率:

指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数

可以理解为一个设备单位时间内接受或者发送了多少数据

常见的一些是1200,4800,9600,19200,5600,57600,115200等

数据位:

5-8位,构成一个字符,进行数据的传送,也是uart通信里面最重要的东西

奇偶校验位:

资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此 来校验资料传送的正确性。

停止位:

它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。

说完了uart,接下来便是配置pcduino v2某某pin脚为串口模式。

到这里,又要絮叨絮叨啦。Arm板子的pin脚一般都是复用的,通过配置实现不同的功能,pcduino 也一样。我们这次是在android上面开发,用到的串口是/ttyS1,处女座的孩子可能会问:为毛不用ttyS0;

我只想说一句,这个问题问得非常好,ttyS0是一个调试串口。不经过一番折腾,并不能当做一个普通串口来用。下面给出两种方法把ttyS1更改成串口模式

  • pcduino v2 安卓系统某个目录下有各个gpio的配置文件,对应的是板子的工作模式, 默认是0,也就是输入模式,懂得看全志手册和pcduino 电路图的孩子可以发现。只要将对应gpio0和gpio1的值更改成3,便可将该pin脚改成串口工作模式对应电路图和全志a10手册,下图已经给出,又让你们做了一次伸手党.

 

看了上图想你也应该明白了吧。那么怎么更改这个文件呢。

Android 进入终端

 

Android~$: su

Android~$: echo 3 > /sys/devices/virtual/misc/gpio/mode/gpio0

Android~$: echo 3 > /sys/devices/virtual/misc/gpio/mode/gpio1

 

当然这个只是暂时性的更改,重新开关机便丢失了配置文件信息。如果想一劳永逸,看第二种方法

 

在github官网上面下载pcduino提供的工具,sunxi-tools,说白了就是全志芯片提供的一个反编译工具。提取pcduino android 的script.bin文件。提取方式是:挂在/dev/nand文件到/mnt、 提取其中文件。不要问我如何挂载。只想说,这是一个linux操作人员的最基本的素养。

在PC下面编译sunxi-tools。出现两个文件bin2fex和fex2bin.

用bin2fex 编译 scripts.bin文件

更改uart_para2.把uart_used = 1 更改成 uart_used = 0

保存;

使用fex2bin 编译回去

 

Ubuntu@goofy~$: fex2bin scripts.fex scripts.bin

 

编译完成后。把scripts.bin文件,放到板子上面。启动的时候。板子的gpio0和gpio1自动便会初始化为串口模式。对应设备文件时/dev/ttyS1

1.2种方法。同样使用于pcduino v2的ubuntu镜像

到此为止,板子已经支持串口模式了。下一篇。拿指纹开刀。

更多文章博客:http://www.goofyy.com



你可能感兴趣的:(嵌入式,pcduino,指纹开发,智能家居)