代码原理: USB Reader虽然是USB接口,但是大多数是模拟键盘输入的。 因此,可以通过 open("/dev/tty0".....) 这个系统函数打开设备。 那么就可以像读取文件一样读取IC卡的ID。
要点注意: 由于开发板上Linux驱动的不同,因此键盘可能会产生多个字节的扫描码(最多可能有6个)。因此程序要进行过滤。 例如:过滤【键盘码】>128的值。 在Linux下,键盘码值(1~127),释放键(KeyUP)的值为【键值】+128 即: 键盘码= 10,则释放键=10+128 如果仅仅是转换 0~9这几个值,可以采用下面的算法 int key = '0' + 【键盘码值】 - 1; //Reader.h #ifndef READER_H #include <stdio.h> int OpenReader(char* dev) int ReadId(int fd,char *id_buf,int len) }
//主程序 #include"reader.h" int reader_fd; while(1) printf("Read ID=%s\r\n",buf); } } CloseReader(reader_fd); return 0;
程序运行效果:
|
|