mful.c

来自「另外一个RC531非接触式读卡器的全部源代码」· C语言 代码 · 共 77 行

C
77
字号
#include <stdio.h>#include <sys/ioctl.h>#include "rc531.h"/* MIFARE Ultra Light function */int mfwrite(int addr, char *buf){ int data; char sbuf[32], rbuf[8]; struct rc531_cmd cmd; cmd.sendbuf = sbuf; cmd.recvbuf = rbuf; cmd.cmd = 0x1e; cmd.timeout = 0x70; cmd.bytesent = 6; sbuf[0] = 0xa2; sbuf[1] = addr; sbuf[2] = buf[0]; sbuf[3] = buf[1]; sbuf[4] = buf[2]; sbuf[5] = buf[3]; ioctl(fd531, RC531_CMD, &cmd); if(cmd.status&0x80){     return cmd.status; } if((r531(0x05)&0x07)!=4){     return E_BIT; } data = rbuf[0]&0x0f; if((data&0x0a) == 0){     return E_NAUTH; }else if(data != 0x0a){     return E_CODE; } return E_OK;}int mfread(int addr, char *buf){ int data; char sbuf[8]; struct rc531_cmd cmd; cmd.sendbuf = sbuf; cmd.recvbuf = buf; cmd.cmd = 0x1e; cmd.timeout = 0x50; cmd.bytesent = 2; sbuf[0] = 0x30; sbuf[1] = addr; ioctl(fd531, RC531_CMD, &cmd); if(cmd.status&0x86){     return cmd.status; } if(cmd.byterecv==1 && (r531(0x05)&0x07)==4){     data = buf[0]&0x0f;     if((data&0x0a) == 0){         printf("read: not authent!\n");         return E_NAUTH;     }else{         printf("read: code error!\n");         return E_CODE;     } } return E_OK;}

⌨️ 快捷键说明

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