本帖最后由 zix 于 2014-3-6 17:28 编辑
这个ifid 是串口的
读取ID只需要三条指令即可:
请求命令:
07 12 41 01 52 f8 03 发送后返回08 12 00 02 04 00 E3 03
防碰撞命令:
0c 22 42 06 93 00 78 01 a6 00 d9 03 发送后返回0A 22 00 04 74 84 3E DD C0 03
其中 74 84 3E DD 是id 也就是我想读到的值
停止命令:
06 32 44 00 8f 03 发送后返回06 32 00 00 CB 03
返回的
unsigned char cardid[7];
void setup() {
Serial.begin(9600);
}
void loop() {
readCard(); //发送读取id指令
delay(100);
if(Serial.read()==0x22){ //id串字头
if(Serial.read()==0x00){
for(int i = 0;i<8;i++){
int val = Serial.read();
cardid=val;}
Serial.print(cardid[1]);
Serial.print(cardid[2]);
Serial.print(cardid[3]);
Serial.println(cardid[4]);
delay(1000);
}
}
tingzhi();
delay(100);
}
void readCard(){
char qingqiu[]={0x07,0x12,0x41,0x01,0x52,0xF8,0x03}; //请求指令
char fangpengzhuang[]={0x0C,0x22,0x42,0x06,0x93,0x00,0x78,0x01,0xA6,0x00,0xD9,0x03}; //防碰撞指令
Serial.write(qingqiu,7);
Serial.flush();
delay(10);
Serial.write(fangpengzhuang,12);
delay(10);
Serial.flush();
}
void tingzhi(){ //停止指令
char tingzhi[]={0x06,0x32,0x44,0x00,0x8F,0x03};
Serial.write(tingzhi,6);
delay(10);
} |