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

📄 mful.c

📁 另外一个RC531非接触式读卡器的全部源代码
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -