最近为了在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。

编写测试程序

编写测试程序思路很简单,

  1. 通过open函数打开字符设备ttyUSB0
  2. 通过函数ioctl设置对应参数,波特率9600,数据位数8,奇偶校验位0,终止位1。
  3. 通过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板子如何移植刷卡器的更多相关文章

  1. 集成IC刷卡器经验

    因为一系列的原因,IC刷卡器要渐渐地取代磁条刷卡器.公司在这方面也是需要跟进的,在我负责集成IC刷卡器到应用程序的过程中,积累了些经验,现在分享下. 第一:无论是磁条还是IC刷卡器都是刷卡器的一种,所 ...

  2. OK6410移植madplay播放器,王明学learn

    对于ok6410的madplay移植主要包括三部分.声卡驱动移植,播放器的移植,以及alsa库的移植. 一.首先移植声卡驱动以及播放器 ok6410采用WM97系列的声卡芯片,要使得内核支持该驱动,首 ...

  3. 【linux基础】关于ARM板子使用O3编译选项优化

    前言 应领导要求需要将最初级版本的算法移植到ARM板子上,并进行优化,以期达到实时. 平台 移植前: TX2 移植后: ARM() processor : model name : ARMv7 Pro ...

  4. 将中文库导入到ARM板子中以解决中文显示乱码的教程

    1.将中文字符集导入到ARM板子中的/usr/fonts/目录下 在这里我们使用的字符集为:DroidSansFallback.ttf 下载地址为:https://pan.baidu.com/s/1e ...

  5. POS机刷卡跨行交易的清算方式

    POS机刷卡的参与方比较多.以你在星巴克刷卡为例: 持卡人--你 发卡行--你办这张卡的银行,我们假设是工行 商户--星巴克,我们假设星巴克的账户开在建行 收单行--星巴克的刷卡机的归属银行,假设也是 ...

  6. 免小号QQ空间说说刷赞器

    小伙伴们赶紧用等待免小号QQ空间说说刷赞器,几分钟就可以刷好几百赞了噢, 给大家一个下载地址:http://www.dedewl.com/TA/gotoB.php?id=770319205B

  7. OpenCV在ARM上的移植

    OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...

  8. Python实现微信刷卡支付(条码支付)MicroPay

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7686765.html 一:资料阅读 场景介绍:https://pay.weixin.qq.com/wiki/d ...

  9. 使用Python制作一个简单的刷博器

    呵呵,不得不佩服Python的强大,寥寥几句代码就能做一个简单的刷博器. import webbrowser as web import time import os count=0 while co ...

  10. OPENCV在ARM平台的移植

    两篇别人推荐给我的文章,我想直接复制过来,呵呵,但一想真不好,等我做一遍了再来写一遍.还是贴链接. OpenCV在ARM上的移植:http://www.cnblogs.com/emouse/archi ...

随机推荐

  1. FFmpeg新旧接口对照使用一览

    背景 根据例程学习调用ffmpeg 库方法的时候,发现了一堆警告. main.cpp:81:37: warning: 'AVStream::codec' is deprecated [-Wdeprec ...

  2. 嵌入式ARM端测试手册——全志T3+Logos FPGA开发板(上)

    前 言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu18.04.4 64bit 虚拟机:VMwa ...

  3. Unable to start web server; nested exception is org.springframework.context.ApplicationContextException

    项目报错:Unable to start web server; nested exception is org.springframework.context.ApplicationContextE ...

  4. CvT:微软提出结合CNN的ViT架构 | 2021 arxiv

    CvT将Transformer与CNN在图像识别任务中的优势相结合,从CNN中借鉴了多阶段的层级结构设计,同时引入了Convolutional Token Embedding和Convolutiona ...

  5. leetcode简单(数组,字符串,链表):[66, 67, 70, 83, 121, 141, 160, 169, ,206, 338]

    目录 66. 加一 67. 二进制求和 70. 爬楼梯 83. 删除排序链表中的重复元素 121. 买卖股票的最佳时机 141. 环形链表 160. 相交链表 169. 多数元素 206. 反转链表 ...

  6. 图的存储、创建、遍历、求最小生成树、最短路径(Java)

    带权无向图 存储结构 存储结构选用邻接表. 当一个图为稀疏图时,使用邻接矩阵法显然要浪费大量的存储空间,而图的邻接表法结合了顺序存储和链式存储方法,大大减少了这种不必要的浪费. 当然,即使我们所处理的 ...

  7. 垃圾回收器比较:CMS 和 G1

    前言 在查看系统内存监控的过程中,发现有几台机器的内存使用率一直很高,而且是呈现一个不太正常的高度,初始以为是 GC 不完全,也就是 JVM 内有大量对象不能回收,于是采用 Arthas 诊断查看一下 ...

  8. 《Programming from the Ground Up》阅读笔记:p88-p94

    <Programming from the Ground Up>学习第5天,p88-p94总结,总计7页. 一.技术总结 1.touppercase.s #PURPOSE: This pr ...

  9. 简单写写IO流里的一些高级流

    缓冲流Buffered:缓冲流是一种高级的流,他可以对file类的流进行包装,内部含有一种缓冲池,可以在一定程度上提高IO的读写效率 不过,按实验来看,只要给低级流和缓冲流相似的byte读写,其实两者 ...

  10. NameCheap域名怎么样,如何注册购买域名?如何解析域名?

    Namecheap介绍 Namecheap是一家国外域名注册商和网站托管公司,成立于2000年,提供域名注册.虚拟主机.电子邮件托管.SSL证书.免费的WHOIS保护.CDN.VPS主机和独立服务器. ...