100ASK_IMX6ULL arm板子如何移植刷卡器
最近为了在arm板子上移植刷卡器,比较简单,但也遇到了坑,现在和大家分享下。
购买刷卡器
某宝很多,应该选哪一种呢?
一口君一共买了4种刷卡器,有2种可以用,还有2种不能用。
下图为最方便的一款,一口君选的是ID卡。
为了避免做广告嫌疑,就不贴购买链接了,但是切记:
一定要买带serial芯片的,比如ch341或者rs232
要不即使和这个刷卡器一样,也可能无法使用,切记。

价格大概45左右,不要买18块左右的,如果怕买错,就给一口君留言。
移植USB转串口驱动
进入内核找到对应的USB转串口驱动,位置如下:
选中该驱动

保存退出,重新编译内核。
【如果是其他型号的串口,请选择对应的驱动】
测试设备
下载编译好的内核到开发板(一口君是通过nfs挂载然后拷贝到/boot目录下),重启后插上刷卡器,看到
ch341-uart converter now attached to ttyUSB0
就成功一半了。
驱动会自动为该串口创建该字符设备,我们只需要像操作普通字符设备一样就可以使用该刷卡器了。

查看字符设备节点
该字符设备节点位于/dev/ttyUSB0,由该字符设备节点信息可知该字符设备主设备号188,次设备号为0。

编写测试程序
编写测试程序思路很简单,
- 通过open函数打开字符设备ttyUSB0
- 通过函数ioctl设置对应参数,波特率9600,数据位数8,奇偶校验位0,终止位1。
- 通过read函数可以阻塞的读取卡号了。
文件目录结构如下:

card.c
1 #include <stdio.h>
2 #include <unistd.h>
3 #include "IC_serial.h"
4 void main(void)
5 {
6 int i;
7 int fd;
8 char buf[32]={0};
9
10 open_port(&fd);
11 uart_init(fd);
12
13 for(i=0;i<20;i++)
14 {
15 read_from_serial(fd,buf);
16 printf("card:%s\n",buf);
17 }
18 }
交叉编译:
arm-linux-gnueabihf-gcc *.c -o run
运行结果如下:

完整代码,关注公众号,后台回复 card。
100ASK_IMX6ULL arm板子如何移植刷卡器的更多相关文章
- 集成IC刷卡器经验
因为一系列的原因,IC刷卡器要渐渐地取代磁条刷卡器.公司在这方面也是需要跟进的,在我负责集成IC刷卡器到应用程序的过程中,积累了些经验,现在分享下. 第一:无论是磁条还是IC刷卡器都是刷卡器的一种,所 ...
- OK6410移植madplay播放器,王明学learn
对于ok6410的madplay移植主要包括三部分.声卡驱动移植,播放器的移植,以及alsa库的移植. 一.首先移植声卡驱动以及播放器 ok6410采用WM97系列的声卡芯片,要使得内核支持该驱动,首 ...
- 【linux基础】关于ARM板子使用O3编译选项优化
前言 应领导要求需要将最初级版本的算法移植到ARM板子上,并进行优化,以期达到实时. 平台 移植前: TX2 移植后: ARM() processor : model name : ARMv7 Pro ...
- 将中文库导入到ARM板子中以解决中文显示乱码的教程
1.将中文字符集导入到ARM板子中的/usr/fonts/目录下 在这里我们使用的字符集为:DroidSansFallback.ttf 下载地址为:https://pan.baidu.com/s/1e ...
- POS机刷卡跨行交易的清算方式
POS机刷卡的参与方比较多.以你在星巴克刷卡为例: 持卡人--你 发卡行--你办这张卡的银行,我们假设是工行 商户--星巴克,我们假设星巴克的账户开在建行 收单行--星巴克的刷卡机的归属银行,假设也是 ...
- 免小号QQ空间说说刷赞器
小伙伴们赶紧用等待免小号QQ空间说说刷赞器,几分钟就可以刷好几百赞了噢, 给大家一个下载地址:http://www.dedewl.com/TA/gotoB.php?id=770319205B
- OpenCV在ARM上的移植
OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...
- Python实现微信刷卡支付(条码支付)MicroPay
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7686765.html 一:资料阅读 场景介绍:https://pay.weixin.qq.com/wiki/d ...
- 使用Python制作一个简单的刷博器
呵呵,不得不佩服Python的强大,寥寥几句代码就能做一个简单的刷博器. import webbrowser as web import time import os count=0 while co ...
- OPENCV在ARM平台的移植
两篇别人推荐给我的文章,我想直接复制过来,呵呵,但一想真不好,等我做一遍了再来写一遍.还是贴链接. OpenCV在ARM上的移植:http://www.cnblogs.com/emouse/archi ...
随机推荐
- Wireshark抓包分析理解DHCP协议及工作流程
一.DHCP简介 DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,前身是BOOTP协议.在大型局域网中,需要给很多主机配置地址信息,如果采用传统 ...
- Python使用Matplotlib画以日期为X轴的图
Python使用Matplotlib画以日期为X轴的图 步骤: 用pd把字符串格式的日期转成date格式. 使用 AutoDateLocator 设置x轴的属性. 1 from matplotlib ...
- 10分钟掌握Python缓存
全文速览 python的不同缓存组件的使用场景和使用样例 cachetools的使用 项目背景 代码检查项目,需要存储每一步检查的中间结果,最终把结果汇总并写入文件中 在中间结果的存储中 可以使用co ...
- UEFI与inf文件
UEFI与inf文件 背景 学习高通UEFI中的LCD显示框架,看到有些博客对inf文件进行了介绍,因此整理了这方面的一些入门知识. 参考: https://blog.csdn.net/yunfeng ...
- Android 编译系统 defconfig文件的确定
Android 编译系统 defconfig文件的确定 背景 经常在驱动改动的时候,同时改动2个文件,才知道他们分别对应不同的编译结果. 路径 对应版本 kernel/msm-4.4/arch/arm ...
- SpringBoot集成Mongodb文档数据库
添加Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...
- Java -jar 启动程序参数说明
Springboot环境下的启动参数说明 # Java启动命令语法: java [options] -jar file.jar [arguments] java -jar [options] file ...
- VUE商城项目 - 项目优化上线 - 手稿
- 算法金 | 最难的来了:超参数网格搜索、贝叶斯优化、遗传算法、模型特异化、Hyperopt、Optuna、多目标优化、异步并行优化
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 今日 215/10000 为模型找到最好的超参数是机器学习实践中最困难的部分之一 ...
- PowerBuilder编程新思维6:装饰(用最简单的方式做框架)
To be, or not to be - that is the question. PowerBuilder编程新思维6:装饰(用最简单的方式做框架) 问题 这一章,是写得最艰难的一章,原因有四: ...