欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1609|回復: 1
收起左側

幫忙看看這個讀取id卡號的單片機程序應該怎么寫?

[復制鏈接]
ID:510170 發表于 2021-4-14 15:25 | 顯示全部樓層 |閱讀模式
  1. u32 idcard(u32 id)        //讀取id卡號
  2. {
  3.         u8 i;        
  4.         for(i=0; i<10; i++)        idbuf[i]=RX2_Buffer[i+1];//取其中10位存入讀內存
  5.         for(i=0; i<10; i++)        idbuf[i]=ascii_tohex(idbuf[i]);//ascii轉碼
  6.         idbuf[10]=(idbuf[0]<<4)|idbuf[1];//合并后運算出校驗碼
  7.         idbuf[11]=(idbuf[2]<<4)|idbuf[3];
  8.         idbuf[12]=(idbuf[4]<<4)|idbuf[5];
  9.         idbuf[13]=(idbuf[6]<<4)|idbuf[7];
  10.         idbuf[14]=(idbuf[8]<<4)|idbuf[9];               
  11.         idbuf[15]=idbuf[10]^idbuf[11]^idbuf[12]^idbuf[13]^idbuf[14];                //校驗碼                                       
  12.         id=(idbuf[2]*268435456)+(idbuf[3]*16777216)+(idbuf[4]*1048576)+(idbuf[5]*65536)+(idbuf[6]*4096)+(idbuf[7]*256)+(idbuf[8]*16)+idbuf[9];//轉10進制數以便分解顯示
  13.         return id;        
  14. }
復制代碼

我如果這樣寫,返回的卡號是這個樣子的。
02 33 30 30 30 34 37 37 39 30 39 07 03  //實際數據
00 00 00 00 00 00 00 00 00 00 //idbuf0-15的數據
00 00 00 00 00 00
30 30 31 36 37 31 34 31 36 32 //id經過分解后的數據

換成這樣寫
  1. void idcard(u32 id)        //讀取id卡號
  2. {
  3.         u8 i;
  4.         for(i=0; i<10; i++)        idbuf[i]=RX2_Buffer[i+1];//取其中10位存入讀內存
  5.         for(i=0; i<10; i++)        idbuf[i]=ascii_tohex(idbuf[i]);//ascii轉碼
  6.         idbuf[10]=(idbuf[0]<<4)|idbuf[1];//合并后運算出校驗碼
  7.         idbuf[11]=(idbuf[2]<<4)|idbuf[3];
  8.         idbuf[12]=(idbuf[4]<<4)|idbuf[5];
  9.         idbuf[13]=(idbuf[6]<<4)|idbuf[7];
  10.         idbuf[14]=(idbuf[8]<<4)|idbuf[9];               
  11.         idbuf[15]=idbuf[10]^idbuf[11]^idbuf[12]^idbuf[13]^idbuf[14];                //校驗碼                                       
  12.         id=(idbuf[2]*268435456)+(idbuf[3]*16777216)+(idbuf[4]*1048576)+(idbuf[5]*65536)+(idbuf[6]*4096)+(idbuf[7]*256)+(idbuf[8]*16)+idbuf[9];//轉10進制數以便分解顯示
  13. }
復制代碼

獲得的數據是這樣的
02 33 30 30 30 34 37 37 39 30 39 07 03  //實際數據
03 00 00 00 04 07 07 09 00 09 //idbuf0-15的數據
30 00 47 79 09 07
30 30 30 30 30 30 30 30 30 30 //id經過分解后的數據

請教大神錯在哪里呀。謝謝了。
回復

使用道具 舉報

ID:510170 發表于 2021-4-14 15:42 | 顯示全部樓層
已解決,用第二種方案,把id號設為全局變量,直接分解id就可以了。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表