⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 typeb.c

📁 另外一个RC531非接触式读卡器的全部源代码
💻 C
字号:
#include <stdio.h>#include <sys/ioctl.h>#include "rc531.h"/* TYPE B function */int reqb(int type, char *atqb){ int i; char sbuf[128]; struct rc531_cmd cmd; cmd.sendbuf = sbuf; cmd.recvbuf = atqb; cmd.cmd = 0x1e;    //transceive command cmd.bytesent = 3; cmd.timeout = 0x1a; for(i=0; i<5; i++){     sbuf[0] = 0x05;    //request command     sbuf[1] = 0x00;     sbuf[2] = type|i;     ioctl(fd531, RC531_CMD, &cmd);     if(cmd.status&0x80){         continue;     }     if(cmd.status&0x0c){         return cmd.status;     }     if(cmd.byterecv!=12){         return E_BYTE;     }     return E_OK; } return E_TIMEOUT;}int attrib(int uid, int cid, char *ata){ int i; char *pid; char sbuf[128]; struct rc531_cmd cmd; pid = (char *)&uid; cmd.cmd = 0x1e; cmd.sendbuf = sbuf; cmd.recvbuf = ata; cmd.bytesent = 9; cmd.timeout = 0x1a; sbuf[0] = 0x1d; for(i=0; i<4; i++){      sbuf[i+1] = pid[i]; } sbuf[5] = 0x00; sbuf[6] = 0x05; sbuf[7] = 0x01; sbuf[8] = cid; ioctl(fd531, RC531_CMD, &cmd); if(cmd.status){     return cmd.status; } if(!cmd.byterecv){     return E_BYTE; } return E_OK;}int haltb(int uid){ int i; char *pid; char sbuf[8], rbuf[8]; struct rc531_cmd cmd; pid = (char *)&uid; cmd.cmd = 0x1e; cmd.sendbuf = sbuf; cmd.recvbuf = rbuf; cmd.bytesent = 5; cmd.timeout = 0x1a; sbuf[0] = 0x50; for(i=0; i<4; i++){      sbuf[i+1] = pid[i]; } ioctl(fd531, RC531_CMD, &cmd); return E_OK;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -