一口Linux
认证:优质创作者
所在专题目录 查看专题
Linux scp命令
Linux命令cURL如何访问FTP服务器
100ASK_IMX6ULL arm板子如何显示图片、汉字、划线、背景色
在100ASK_IMX6ULL arm板子上移植个刷卡器
apt 和 apt-get 之间有什么区别?
如何搭建鸿蒙开发环境!手把手教你!
作者动态 更多
瑞芯微-I2S | ALSA基础-3
5天前
软件开发者如何保护自己的知识产权?
3星期前
推荐最近在使用的还不错的一款逻辑分析仪
04-01 21:40
瑞芯微-I2S | 音频驱动调试基本命令和工具-基于rk3568-2
03-28 17:38
Linux环境变量,知识点汇总
03-08 20:56

在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。

编写测试程序

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

  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。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 1
收藏 1
关注 168
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧