最近为了在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. python重拾第十一天-REDIS缓存数据库

    缓存数据库介绍 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付we ...

  2. Sql Server中Cross Apply关键字的使用

    Sql Server中Cross Apply关键字的使用 前言 在写一个业务的时候,有1列数据如下: 车牌号 湘A00001/湘G00001 湘A00002/湘G00002 湘A00003/湘G000 ...

  3. Linux 时间 与 定时器

    背景 在学习 Linux 信号 有关知识中,提到了 alarm函数. 进程时间 (原文地址:https://www.cnblogs.com/clover-toeic/p/3845210.html) 进 ...

  4. msgpack的使用

    1.引入包 <!--msgpack依赖--> <dependency> <groupId>org.msgpack</groupId> <artif ...

  5. webgl智慧楼宇发光系列之线性采样下高斯模糊

    目录 webgl智慧楼宇发光系列之线性采样下高斯模糊 效率问题 线性采样 代码讲解 总结 参考文档 webgl智慧楼宇发光系列之线性采样下高斯模糊 前面一篇文章 <webgl智慧楼宇发光效果算法 ...

  6. 通过canvas计算任意两个颜色的插值

    通过canvas可以协助我们做很多颜色计算的辅助,比如颜色转换,渐变颜色计算. 对于颜色转换,之前写过一篇文章:<通过canvas转换颜色为RGBA格式及性能问题> , 读者可以查阅该篇文 ...

  7. webpack4.15.1 学习笔记(七) — 懒加载(Lazy Loading)

    懒加载或者按需加载,是一种很好的优化网页或应用的方式.实际上是先把代码在一些逻辑断点处分离开,然后在一些代码块中完成某些操作后,立即引用或引用另外一些新的代码块.这样加快了应用的初始加载速度,减轻了它 ...

  8. oeasy教您玩转vim - 35 - # 正则表达

    ​ 查找进阶 回忆上节课内容 实时搜索 :set incsearch 大写小写 ignorecase 查找当前单词 * 正向按单词 # 反向按单词 g* 正向不按单词 g# 反向不按单词 继续查找 n ...

  9. 单细胞测序最好的教程(八): 细胞类型自动注释-1|基于marker的自动注释

    作者按 本章节主要讲解了基于marker的自动注释方法,一般来说,我会先自动注释,再手动去确认marker,这是因为,对于一个陌生的组织,我对marker是不了解的,自动注释可以帮助我快速熟悉细胞类型 ...

  10. LeetCode102.二叉树的层序遍历

    LeetCode题目链接:https://leetcode.cn/problems/binary-tree-level-order-traversal/submissions/548489149/ 题 ...