1、代码原理:USB Reader 虽然是 USB 接口,但是大多数是模拟键盘输入的。因此,可以通过 open(“/dev/tty0“.) 这个系统函数打开设备。那么就可以像读取文件一样读取 IC 卡的 ID。要点注意:由于开发板上 Linux 驱动的不同,因此键盘可能会产生多个字节的扫描码(最多可能有6 个)。因此程序要进行过滤。例如:过滤【键盘码】128 的值。在 Linux 下,键盘码值(1127 ),释放键(KeyUP)的值为【键值】+128即: 键盘码= 10,则释放键=10+128如果仅仅是转换 09 这几个值,可以采用下面的算法int key = 0 + 【键盘码值】 - 1;/Re
2、ader.h#ifndef READER_H#define READER_H#include #include #include int OpenReader(char* dev)int Reader_Fd=-1;Reader_Fd = open(dev, O_RDWR);return Reader_Fd;void CloseReader(int fd)close(fd);int ReadId(int fd,char *id_buf,int len)unsigned char key5;unsigned char K;int i=0;doK=0;if(read(fd,key,4)0)if(ke
3、y0len)i=0;while(K!=28);id_bufi-1=0;return 1;#endif / READER_H/主程序#include“reader.h“int main(int argc, char *argv)int reader_fd;char buf32;if(reader_fd=OpenReader(“/dev/tty0“)=-1)puts(“Open Dev Error!rn“);while(1)if(ReadId(reader_fd,buf,32)=1)printf(“Read ID=%srn“,buf);CloseReader(reader_fd);return 0;程序运行效果: