久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 基于51單片機的RC522的CPU卡(FM1208)的例程 [打印本頁]

作者: 15322061148    時間: 2017-3-22 11:22
標題: 基于51單片機的RC522的CPU卡(FM1208)的例程
使用51單片機,飛利浦RC522的射頻芯片,
讀寫CPU卡(復旦的FM1208)的例程,
PS: RC522模塊(淘寶上有賣7塊錢左右一個)





完整例程下載:
RC522_串口操作FM1208.rar (119.84 KB, 下載次數: 887)




主程序預覽:
  1. #include   <STDIO.H>
  2. #include <string.h>
  3. #include "reg52.h"
  4. #include "main.h"
  5. #include "rc522.h"
  6. #include "1602.h"




  7. //////////////////CPU卡的指令/////////////////////////////////////////////////////////////////////////////////
  8. unsigned char code Keyfile[7] ={0x3F, 0x00, 0xB0, 0x01, 0xF0, 0xFF, 0xFF};        //建密鑰文件
  9. unsigned char code DefaultKey[8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};  //原始外部密鑰
  10. unsigned char code ExKey[5]   ={0x39, 0xF0, 0xF0, 0xAA, 0x55};             ////外部密鑰建立的指令信息
  11. unsigned char code DFfile[13] ={0x38,0x05,0x20,0xF0,0xF0,0x95,0xFF,0xFF,0x44,0x44,0x46,0x30,0x31};//建立的DF文件                                                          
  12. unsigned char code EF_KEY_File[7]={0x3F, 0x01, 0x8F, 0x95, 0xF0, 0xFF, 0xFF};//建立EF密鑰文件                                                                                                                  
  13. unsigned char code C_KEY[8]={0x3A, 0xF0, 0xEF, 0x44, 0x55, 0x12, 0x34, 0x56};    //增加口令密鑰
  14. unsigned char code EF_File1[7]={0x28, 0x00, 0x1E, 0xF0, 0xF0, 0xFF, 0xFF};//        基本文件EF 建立的二進制文件1                                                  
  15. unsigned char code EF_File2[7]={0x28, 0x00, 0x0F, 0xF4, 0xF0, 0xFF, 0xFF};//        基本文件EF 建立的二進制文件2
  16. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////





  17. //////////////////文件標識的定義/////////////////////////////////////////////////////////////////////////////////

  18. unsigned char code MF_File_Flag[2] = {0x3f,0x00};       //MF文件標識3F00//
  19. unsigned char code KEY_File_Flag[2] = {0x00,0x00};      //密鑰文件標識0000//
  20. unsigned char code KEY_Flag = {0x00};                //密鑰標識00,即放在MF下密鑰文件里面的密鑰,用1個字節表示 //

  21. unsigned char code DF_File_Flag[2] = {0x3f,0x01};       //DF文件標識3F01//
  22. unsigned char code KEY_DF_File_Flag[2] = {0x00,0x01};   //DF下的密鑰文件標識0001//
  23. unsigned char code Keyword_DF_Flag = {0x01};         //密鑰標識01,即放在DF下密鑰文件里面的密鑰,用1個字節表示 //

  24. unsigned char code EF_File3_Flag[2]        = {0x00,0x03};       //EF文件標識0003//
  25. unsigned char code EF_File4_Flag[2]        = {0x00,0x04};       //EF文件標識0004//
  26. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  27. unsigned char xdata g_ucTempbuf[MAXRLEN];
  28. unsigned char  xdata Rec_Buf[MAXRLEN];        //接收到串口助手的數據緩存器

  29. unsigned char WorkInt;        //成功接收指令的標志
  30. unsigned char Cmd_Len;  //指令長度         
  31. void delay1(unsigned int z)
  32. {
  33.         unsigned int x,y;
  34.         for(x=z;x>0;x--)
  35.         for(y=110;y>0;y--);       
  36. }  

  37. void UART_Init()     
  38. {
  39. PCON|=0x80; //PCON的最高位SMOD=1時波特率加倍
  40. TMOD=0x20;  //時器1為方式2 初值自動裝入 產生波特率
  41. TH1=0xfd;   //定時器初始為0XFd,晶振為22.1184MHz,本函數實際產生的波特率為38400bps
  42. TL1=0xfd;         //同上   
  43. SCON=0x50;         //串口設置為方式1,REN=1,允許接收
  44. TR1=1;      //啟動定時器1
  45. ES=1;       //使能串口接收中斷,
  46. EA=1;       //打開所有中斷
  47. }

  48. /**************************************************************************
  49. - 功能描述:51單片機的串口發送字節的函數
  50. - 隸屬模塊:STC51串口操作
  51. - 函數屬性:外部,使用戶使用
  52. - 參數說明:mydata:要發送的一個字節
  53. - 返回說明:無
  54. - 注:發送一個字節,是串口發送的基礎操作
  55. **************************************************************************/

  56. void UART_Send_Byte(unsigned char mydata)       
  57. {
  58. ES=0;
  59. TI=0;
  60. SBUF=mydata;
  61. while(!TI);
  62. TI=0;
  63. ES=1;
  64. }

  65. /**************************************************************************
  66. - 功能描述:51單片機的串口發送0d 0a ,即回車換行
  67. - 隸屬模塊:STC51串口操作
  68. - 函數屬性:外部,使用戶使用
  69. - 參數說明:無
  70. - 返回說明:無
  71. - 注:此函數就是發送0d 0a這兩個字節,在“超級終端”上會有回車換行的效果
  72. **************************************************************************/

  73. void UART_Send_Enter()
  74. {
  75. UART_Send_Byte(0x0d);
  76. UART_Send_Byte(0x0a);
  77. }
  78. /**************************************************************************
  79. - 功能描述:51單片機的串口發送字符串
  80. - 隸屬模塊:STC51串口操作
  81. - 函數屬性:外部,使用戶使用
  82. - 參數說明:s:指向字符串的指針
  83. - 返回說明:無
  84. - 注:如果在字符串中有'\n',則會發送一個回車換行
  85. **************************************************************************/

  86. void UART_Send_Str(char *s)
  87. {
  88. int len=strlen(s)-1;
  89. int i;
  90. for(i=0;i<len;i++)
  91. UART_Send_Byte(s[i]);
  92. if(s[i]=='\n')
  93. {
  94.   UART_Send_Enter();
  95. }
  96. else
  97. {
  98.   UART_Send_Byte(s[i]);
  99. }
  100. }




  101. /////////////////////////////////////////////////////////////////////
  102. //串行中斷,接收串口助手發來的數據
  103. /////////////////////////////////////////////////////////////////////
  104. seri_int () interrupt 4 using 1
  105. {
  106. unsigned char len, i;
  107. unsigned int j=0;
  108.    if (RI)
  109.    {

  110.                 ES=0;
  111.                 len=SBUF;
  112.                 RI=0;       
  113.                 for(i=0;i<len;i++)
  114.                 {
  115.                         while(!RI)
  116.                         {
  117.                                 j++;
  118.                                 if(j>1000)
  119.                                 {
  120.                                    ES=1;
  121.                                     break;
  122.                                 }
  123.                         }
  124.                         if(j<1000)
  125.                         {
  126.                                 Rec_Buf[i]=SBUF;
  127.                                 RI=0;
  128.                                 j=0;
  129.                         }
  130.                         else
  131.                         {
  132.                            ES=1;
  133.                             break;
  134.                         }
  135.                 }
  136.                 if(i==len)
  137.                 {
  138.                         ES=1;
  139.                         Cmd_Len=len;
  140.                         WorkInt  = 1;
  141.                                        
  142.                 }
  143.     }

  144. }











  145.   
  146. void u8tostr(unsigned char dat)
  147. {

  148. switch(dat>>4)         //高位
  149. {
  150.         case 0: UART_Send_Byte(0x30);  break;
  151.         case 1: UART_Send_Byte(0x31);  break;
  152.         case 2: UART_Send_Byte(0x32);  break;
  153.         case 3: UART_Send_Byte(0x33);  break;
  154.         case 4: UART_Send_Byte(0x34);  break;
  155.         case 5: UART_Send_Byte(0x35);  break;
  156.         case 6: UART_Send_Byte(0x36);  break;
  157.         case 7: UART_Send_Byte(0x37);  break;
  158.         case 8: UART_Send_Byte(0x38);  break;
  159.         case 9: UART_Send_Byte(0x39);  break;
  160.         case 0x0A: UART_Send_Byte(0x41);  break;
  161.         case 0x0B: UART_Send_Byte(0x42); break;
  162.         case 0x0C: UART_Send_Byte(0x43); break;
  163.         case 0x0D: UART_Send_Byte(0x44); break;
  164.         case 0x0E: UART_Send_Byte(0x45); break;
  165.         case 0x0F: UART_Send_Byte(0x46); break;

  166. }

  167. switch(dat&0x0f)        //低位
  168. {
  169.         case 0: UART_Send_Byte(0x30);  break;
  170.         case 1: UART_Send_Byte(0x31);  break;
  171.         case 2: UART_Send_Byte(0x32);  break;
  172.         case 3: UART_Send_Byte(0x33);  break;
  173.         case 4: UART_Send_Byte(0x34);  break;
  174.         case 5: UART_Send_Byte(0x35);  break;
  175.         case 6: UART_Send_Byte(0x36);  break;
  176.         case 7: UART_Send_Byte(0x37);  break;
  177.         case 8: UART_Send_Byte(0x38);  break;
  178.         case 9: UART_Send_Byte(0x39);  break;
  179.         case 0x0A: UART_Send_Byte(0x41);  break;
  180.         case 0x0B: UART_Send_Byte(0x42); break;
  181.         case 0x0C: UART_Send_Byte(0x43); break;
  182.         case 0x0D: UART_Send_Byte(0x44); break;
  183.         case 0x0E: UART_Send_Byte(0x45); break;
  184.         case 0x0F: UART_Send_Byte(0x46); break;

  185. }

  186.   
  187. }
  188. void UART_Put_Num(unsigned char * dat,unsigned char len)
  189. {
  190.         unsigned char i;
  191.        
  192.         for(i=0;i<len;i++)
  193.         {
  194.                 u8tostr(dat[i]);
  195.         }
  196.         UART_Send_Enter();
  197. }



  198. //////////////////////////////////////////////////////////////////////////////

  199. void main( )
  200. {   
  201.         unsigned char status;
  202.         unsigned char tt[2];
  203.         unsigned int sst=0;
  204.            InitSystem( );
  205.          lcd1602_init();
  206.      RC522_Init();

  207.      PcdAntennaOff();
  208.      PcdAntennaOn();

  209.          display_welcome();

  210.          delay1(500);
  211.          BEEP=0;
  212.          delay1(100);
  213.          BEEP=1;

  214.           memset(g_ucTempbuf, 0x00, MAXRLEN); //清0

  215.           while(1)
  216.           {

  217.                    if(WorkInt)
  218.                    {
  219.                                 WorkInt=0;
  220.                
  221.                                 if((Cmd_Len==1)&&(Rec_Buf[0]==0xAA))           //尋卡及復位只操作一次  約定指令為:01AA
  222.                                 {
  223.                                         Rec_Buf[0]=0;
  224.                                         Cmd_Len=0;
  225.                                         if(GetCard(PICC_REQALL,tt,g_ucTempbuf)!=ST_OK)  //尋卡函數
  226.                                         {
  227.                                                 UART_Send_Str("無卡!");
  228.                                                 UART_Send_Enter();
  229.                                                 continue;
  230.                                         }          //尋卡失敗返回
  231.                                        
  232.                                        
  233.                                         memset(g_ucTempbuf, 0x00, MAXRLEN);        //清0
  234.                                         if (CardReset(g_ucTempbuf,tt)!=ST_OK)                  //CPU卡復位函數
  235.                                         { continue; }
  236.                                         UART_Send_Str("復位成功!");
  237.                                         UART_Send_Str("返回ATS值:");
  238.                                         UART_Put_Num(g_ucTempbuf,tt[0]);         //串口助手顯示返回
  239.                                         UART_Send_Enter();
  240.                                         memset(g_ucTempbuf, 0x00, MAXRLEN);        //清0
  241.                                         BEEP=0;
  242.                                         delay1(500);
  243.                                         BEEP=1;                       
  244.                                         continue;
  245.                                 }


  246.                                 status=Pcd_Cmd(Rec_Buf, Cmd_Len, g_ucTempbuf,tt);
  247.                                 if(status)        //1時出錯了
  248.                                 {

  249.                                         Cmd_Len=0;
  250.                                         memset(Rec_Buf, 0x00, MAXRLEN);
  251.                                         memset(g_ucTempbuf, 0x00, MAXRLEN);        //清0                               
  252.                                         UART_Send_Str("操作失敗!");
  253.                                          
  254.                                         UART_Send_Enter();
  255.                                         continue;                                                //返回       
  256.                                 }
  257.                                
  258.                                 UART_Put_Num(&g_ucTempbuf[2],tt[0]);         //串口助手顯示返回狀態

  259.                                 BEEP=0;
  260.                                 delay1(100);
  261.                                 BEEP=1;                       
  262.                                 delay1(100);
  263.                                 BEEP=0;
  264.                                 delay1(100);
  265.                                 BEEP=1;
  266.                           
  267.                                 memset(g_ucTempbuf, 0x00, MAXRLEN);        //清0
  268.        
  269.                    }

  270.           }                       


  271. }


  272. /////////////////////////////////////////////////////////////////////
  273. //系統初始化
  274. /////////////////////////////////////////////////////////////////////
  275. void InitSystem()
  276. {

  277.     P0 = P1 = P2 = P3 = 0xFF;
  278.         UART_Init();
  279. }

復制代碼



作者: twlotto888    時間: 2017-6-11 17:53
推一個
作者: twlotto888    時間: 2017-6-11 17:56
請問一下RC522可以複製卡片嗎?
作者: 飛時達發651    時間: 2017-8-24 14:41
感謝大神分享!
作者: efefeq    時間: 2017-8-31 16:54

感謝大神分享!
作者: giveoneok    時間: 2017-8-31 17:12
學習一下
作者: 小大米    時間: 2017-9-1 15:45
非常感謝分享!正在研究這個
作者: 841336876    時間: 2017-9-11 15:18
CPU卡  可以完全防復制嗎?
作者: 天使一般愛你    時間: 2017-9-18 11:28
給力,mark,等積分夠了下載看看,我目前也在搞CPU卡,卡在不知道發什么指令,怎么個過程讀CPU卡了
作者: paulhe    時間: 2017-9-22 10:15
不是很詳細的吧!!!!
作者: jiesuheshang    時間: 2017-9-26 22:40
麻煩問下硬件是怎么連接的呢?
作者: jiesuheshang    時間: 2017-9-26 23:08
還有,有沒有程序現象的說明等等?謝謝了啊
作者: useeker    時間: 2017-9-28 18:31
cpu卡確實有很大的優勢。
作者: 15322061148    時間: 2017-10-26 19:25
開始的時候,我是用的M1卡的,那個很容易被破解的,為了安全考慮,后來采用的CPU卡,這個只是簡單的用串口操作的例程,實際應用中,外部密鑰我們一般是不會把次數設置成F的,像我的話,我一般設置成5次,這樣就不怕破解了,只要密碼不對,超過5次,卡被鎖死,就成廢品。某寶上賣的這個模塊,有些電感用的精度不高,CPU卡只能讀取個卡號,后面的操作做不了,至于硬件怎么接?好像模塊上都有絲印!自己怎么接的單片機,記得把對應的頭文件里設置成一樣的就行吧
作者: qmsolo2004    時間: 2017-11-1 00:00
學習了!非常感謝分享!
作者: yanjibao    時間: 2017-11-6 21:55
FM1208有09和10兩個版本,不知樓主是哪個版本
作者: yanjibao    時間: 2017-11-8 17:22
我已經證實了,是09版,也就是純CPU卡。已經成功地讀取到ATS
作者: 15322061148    時間: 2017-11-15 17:36
FM1208的09和10,其實兩種卡都能用,一種是純CPU卡,一種是CPU+M1卡!但是要注意的一點是,用那種含M1卡容量的,由于它的CPU容量要小一些,在建立DF文件,EF文件的時候,分配文件空間的時候就盡量別劃分的太大,不然可能會回復錯誤代碼(好象是6D01?我也不太記得了!)只要把對應的文件空間大小改小一些就可以!我兩種卡都買過,就算是同一家店買的同一批次的卡片的實際容量也有差別的,所以最好,根據自己的實際需求來,要用到多大的空間,就劃多大的
作者: 謝戈里    時間: 2017-12-1 11:02
非常感謝分享!
作者: n841115849    時間: 2017-12-29 14:32
我也能讀取ATS,但是APDU操作不成功,怎么回事?
作者: 二十歲的高中生    時間: 2017-12-29 17:22
n841115849 發表于 2017-12-29 14:32
我也能讀取ATS,但是APDU操作不成功,怎么回事?

我的沒反應咋回事,我的晶振時11.0592的,我再串口調試助手測試了不同波特率,也沒反應,我的qq946736858,可以討論一下么,整這個好幾天了惱火啊
作者: caesar.xu    時間: 2018-1-5 12:00
caesar.xu@qq.com
作者: 15544781    時間: 2018-1-11 17:04
n841115849 發表于 2017-12-29 14:32
我也能讀取ATS,但是APDU操作不成功,怎么回事?

你的APDU指令能調了嗎??
作者: DHC_King    時間: 2018-1-11 20:28
CPU 卡是什么?
作者: liuzclzc    時間: 2018-1-21 22:52
這個東西可以下來一用。
作者: 15544781    時間: 2018-1-22 20:08
n841115849 發表于 2017-12-29 14:32
我也能讀取ATS,但是APDU操作不成功,怎么回事?

兄弟你APDU指令能調了嗎
作者: guokexiaoming    時間: 2018-2-26 12:09
不知道RC522還可以操作CPU卡,來看看能否借鑒一下
作者: guokexiaoming    時間: 2018-2-27 15:21
黑幣不夠,只能一天天的來刷了。
作者: kydianzi    時間: 2018-3-25 15:49
謝謝分享
作者: JACKLI    時間: 2018-4-15 16:56
這個不錯,先收下了

作者: zscq    時間: 2018-4-17 19:35
看一下 謝謝樓主分享
作者: LOVE灬    時間: 2018-4-18 20:02
正好有用,可以參考一下了
作者: cssss    時間: 2018-5-12 14:39
很有幫助,感謝!
作者: libing1029    時間: 2018-5-15 18:48
你好,樓主,我的到選卡都沒問題,到發送RATS時,無回復,一般這是啥情況
作者: 東電逸仙    時間: 2018-5-26 13:02
版主 ,請問 怎么 開始 測試IC卡
作者: caodj    時間: 2018-6-5 14:44
感謝分享
作者: 51懂    時間: 2018-7-13 17:18
謝謝分享,這幾天都在弄這個東西,也基本沒什么頭緒,

作者: 51懂    時間: 2018-7-14 15:55
東電逸仙 發表于 2018-5-26 13:02
版主 ,請問 怎么 開始 測試IC卡

同求,這個怎么驗證,希望能講解一下,謝謝
作者: @小龍人2    時間: 2018-8-14 15:08
各位大哥還在不在,小弟最近用RC531在調CPU卡的數據交互,RATS已經成功復位,但是進行數據交互不成功,這個問題困惑我好幾天了,有沒有大哥指點一下。
作者: 18207298642    時間: 2018-10-5 16:43
真的非常好用啊
作者: wxl521whr    時間: 2018-10-16 11:40
小白學習中
作者: wxl521whr    時間: 2018-10-16 14:39
小白學習中,
作者: 985980887    時間: 2018-10-25 13:59
黑幣不夠,評論來湊
作者: joao    時間: 2018-10-31 22:35
感謝樓主,無限的
作者: sukoo    時間: 2018-11-12 17:35
謝謝分享,正需要。
作者: wpsookwpsook    時間: 2018-11-14 13:28
真的非常好用啊
作者: wpsookwpsook    時間: 2018-11-14 17:10
謝謝分享,正需要。
作者: zhangzhen123    時間: 2018-11-20 19:46
前來學習學習
作者: 2082422989    時間: 2018-11-21 18:46
這個是s50卡的,更本不是復旦卡,浪費我時間
作者: 2082422989    時間: 2018-11-21 18:47
s50代碼,浪費了我一天時間,差評,冒牌
作者: 609763691    時間: 2018-12-5 13:58
你好樓主,你這個能不能實現扣款,充值等功能呢,我現在能夠識別卡了,但是充值,注冊卡這些高級點的程序還寫不出來,希望能夠得到大牛們的幫助,
作者: fq2007    時間: 2018-12-11 09:31
好東西喲
作者: skkkkkkrs    時間: 2018-12-19 14:47
真好,我很需要這個

作者: wj0755    時間: 2018-12-22 15:35
真的非常好用啊
作者: 一頭英雄車    時間: 2018-12-22 16:27
牛人,非常好了
作者: noleaf    時間: 2018-12-26 13:12
非常感謝,正在使用這方面
作者: qazwsx12    時間: 2019-1-5 10:44
感謝
作者: cheny736    時間: 2019-1-16 23:11
thanks,正好需要!
作者: 18784506782    時間: 2019-3-28 21:40
我只會好好學習
作者: rguang    時間: 2019-4-16 14:10
可以讀卡,不是很詳細。
作者: wang-123    時間: 2019-4-17 14:46
可以實現功能。謝謝分享!
作者: aniu27    時間: 2019-4-27 09:34
CPU卡有CUP卡的指令協議
作者: 盼哥哥581    時間: 2019-5-7 09:12
目前也在學習中,多謝多謝~復旦微電子的效率好低,我在官網流言了3次了,都不給我發開發資料和demo
作者: 15322061148    時間: 2019-5-8 11:56
609763691 發表于 2018-12-5 13:58
你好樓主,你這個能不能實現扣款,充值等功能呢,我現在能夠識別卡了,但是充值,注冊卡這些高級點的程序還 ...

串口助手發指令測試通訊這個,你只要按照協議書上面的格式來,一步步操作,充值,扣款什么的全部都行的!如果要求加密性更高的話就要用到基于PSAM卡的CPU操作的,那個就會折騰的人頭疼,給個郵箱地址吧!我直接發一份代碼你
作者: 15322061148    時間: 2019-5-8 12:04
2082422989 發表于 2018-11-21 18:47
s50代碼,浪費了我一天時間,差評,冒牌

暈倒!你自己不會弄!就會胡說八道!S50的卡,我沒用過,我只用過M1卡跟CPU卡,如果用串口助手操作的話,這兩種卡發的指令都不一樣的!并且這份代碼只是操作CPU卡的,至于S50的卡跟CPU卡是不是有什么相似的地方,我不知道S50,所以就不清楚
作者: jiesuheshang    時間: 2019-6-4 17:30
樓主,給我也發個代碼吧,我的CPU卡充值,扣費有問題。謝謝啊zhangxinruixr@163.com
作者: white128    時間: 2019-7-11 13:17
復旦微電子的卡片APDU 第一次操作PCB必須是0X0A,之后0x0B,0x0A交替
作者: white128    時間: 2019-7-11 13:39
M1卡流程是尋卡--》防碰撞---》選卡---》三次認證---》讀寫卡
作者: white128    時間: 2019-7-11 13:41
CPU卡的操作過程是尋卡---》防碰撞----》選卡---》ATS(切換到APDU指令)---》認證--》讀寫卡
作者: 鵬博士PBs    時間: 2019-7-11 14:13
射頻信號啊 應該好好看一下通訊原理這本書
作者: liudi1990    時間: 2019-7-21 19:30
好東西 感謝分享
作者: liudi1990    時間: 2019-8-1 19:26
感謝大神分享
作者: liudi1990    時間: 2019-8-13 19:45
APDU指令一直報6700錯誤
作者: ahai0306    時間: 2019-10-8 13:34
資料非常不錯,需要學習一下
作者: plainsailing    時間: 2019-10-15 09:19
謝謝分享
作者: bjghui    時間: 2019-11-2 07:23
這個不錯,先收下了,謝謝!
作者: taohai163    時間: 2020-1-2 14:40
我需要的例程,謝謝了!
作者: xiaobaobao    時間: 2020-1-28 11:23
感覺沒啥用
作者: zalelife    時間: 2020-2-19 17:22
感謝分享
作者: bluesea2008    時間: 2020-4-5 15:43
我有RC522操作M1卡,需要的可以下載
作者: bluesea2008    時間: 2020-4-8 20:30
如何上傳資料

作者: rixwyg    時間: 2020-5-5 10:37
Pcd_Cmd函數里面的  status = PcdComMF522( PCD_TRANSCEIVE, ucComMF522Buf, In_Len+4, pDataOut, &unLen );    的怎么是In_Len+4,是不是加少了
作者: hbcym999    時間: 2020-6-4 12:21
謝謝樓主分享好程序
作者: wuxiujiang    時間: 2020-6-7 12:59
小白學習中
作者: wuxiujiang    時間: 2020-6-9 10:15
拿走學習,謝謝分享。
作者: zeng19870714    時間: 2020-6-22 11:09
我正好需要這個
作者: tt88c    時間: 2020-11-29 15:27
這邊正好需要,謝謝。樓主可以詳細說一下步驟碼?
作者: 432499    時間: 2021-2-24 18:54
有沒有完整電路圖
作者: 113777810    時間: 2021-2-24 23:09
我也有一個這樣的模塊,一直不知道軟件從何寫起,謝謝樓主分享!
作者: shszwqs    時間: 2022-12-10 18:02
謝謝分享,下載下來學習學習
作者: ljchip    時間: 2023-2-3 10:45
之前做過mifi卡,這個cpu卡還沒有搞過,謝謝資料。
作者: wlx583193113    時間: 2023-2-11 09:06
12358hjkhkljdLDAJ
作者: zcyxh12345    時間: 2023-5-31 15:32
好貼,收藏,下載了!
作者: luowuping1991    時間: 2023-6-9 10:48

樓主完成這個了嗎?最近也在弄這個,有資源共享嗎
作者: cjc1029    時間: 2023-9-7 09:30
這個壓縮包下下來,明顯少DES相關文件,對CPU卡操作的代碼是沒有的。如果對M1卡操作的參考代碼,買522模塊是有送的
作者: liucan2020    時間: 2023-9-7 10:48
之前也買過,當時剛學軟件,沒調通,有時間我再試試。。。
作者: cpu12g000    時間: 2024-6-9 00:01
上位機 發了哪些指令啊?是否列出并說明?
作者: booker_Z    時間: 2024-10-24 14:42
CPU卡讀寫是不是跟讀寫器有關,ZLG600A只讀寫出來1K的M1




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: www..99re| 在线一区二区三区 | 午夜影院在线观看 | 成年人黄色一级片 | 91社区在线观看高清 | 91直接看| 亚洲精品久久久9婷婷中文字幕 | 亚洲 欧美 日韩在线 | 永久精品| 久久久www成人免费无遮挡大片 | 久久久日韩精品一区二区三区 | 亚洲欧美一区二区三区国产精品 | 超碰在线亚洲 | 久久噜噜噜精品国产亚洲综合 | 欧美在线综合 | 日韩一区二区三区视频在线观看 | 亚洲一区| 久久精品99| 免费骚视频 | 黄色一级免费观看 | 麻豆国产一区二区三区四区 | 免费av直接看| 成人乱人乱一区二区三区软件 | 国产精品日日摸夜夜添夜夜av | 毛片视频免费观看 | 亚洲精品99 | 久久免费香蕉视频 | 亚洲成人在线网 | 国产免费一区二区 | 久久久91精品国产一区二区三区 | 91人人澡人人爽 | 先锋资源吧 | 97精品超碰一区二区三区 | 欧美激情久久久 | 在线中文字幕视频 | 少妇精品久久久久久久久久 | 色爱综合网| 日韩aⅴ在线观看 | 日韩av一区二区在线观看 | 播放一级毛片 | 91久久精品国产 |