极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8628|回复: 0

ifid代码哪里错了?

[复制链接]
发表于 2014-3-6 17:21:16 | 显示全部楼层 |阅读模式
本帖最后由 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);
}   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 01:43 , Processed in 0.070461 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表