• 正文
  • 相关推荐
申请入驻 产业图谱

arm板子上移植个刷卡器

11小时前
179
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

最近为了在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" 
4void 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:%sn",buf);
17     }
18 }

交叉编译:

arm-linux-gnueabihf-gcc *.c -o run

运行结果如下:

 

完整代码,关注公众号【一口Linux 】,后台回复 card。

Arm

Arm

ARM公司是一家知识产权(IP)供应商,主要为国际上其他的电子公司提供高性能RISC处理器、外设和系统芯片技术授权。目前,ARM公司的处理器内核已经成为便携通讯、手持计算设备、多媒体数字消费品等方案的RISC标准。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知识产权(IP)供应商,主要为国际上其他的电子公司提供高性能RISC处理器、外设和系统芯片技术授权。目前,ARM公司的处理器内核已经成为便携通讯、手持计算设备、多媒体数字消费品等方案的RISC标准。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

公众号『一口Linux』号主彭老师,拥有15年嵌入式开发经验和培训经验。曾任职ZTE,某研究所,华清远见教学总监。拥有多篇网络协议相关专利和软件著作。精通计算机网络、Linux系统编程、ARM、Linux驱动、龙芯、物联网。原创内容基本从实际项目出发,保持原理+实践风格,适合Linux驱动新手入门和技术进阶。