MFRC522模塊開發筆記


Write_to_Card(…)和Read_from_Card(…)可謂是所有函數的終點,而SPIWriteByte(…)則是最底層對MFRC522模塊進行操作的函數,所有函數都是為了Write_to_Card(…)和Read_from_Card(…)而產生的。因此,我們只需要調用這兩個函數就可以完成IC卡的讀寫,同時,這兩個函數的參數和使用方法都是一樣的,是不是很簡單!


雖然說可以直接把我們的程序拿來用應一下急,但作為嵌入式開發者,我們建議還是需要了解這些程序是怎么來的,下面我們就來講講程序的組成架構和函數的功能原理。在講程序之前,我們需要將IC卡的結構給大家講清楚,看下圖:


上圖是IC卡中的存儲區結構。Mifare卡片的存儲容量為8192×1位字長(即1K * 8位字長),采用E2PROM作為存儲介質。整個結構划分為16個扇區,編為扇區0~15。每個扇區有4個塊(Block),分別為塊0,塊1,塊2和塊3。每個塊有16個字節。一個扇區共有16Byte* 4 = 64Byte。每個扇區的塊3(即第四塊)也稱作尾塊,包含了該扇區的密碼A(6個字節)、存取控制(4個字節)、密碼B(6 個字節)。其余三個塊是一般的數據塊。

每個扇區的塊3(即第四塊)也稱作尾塊,包含了該扇區的密碼A(6個字節)、存取控制(4個字節)、密碼B(6個字節)。其余三個塊是一般的數據塊。扇區0的塊0是特殊的塊,包含了廠商代碼信息,在生產卡片時寫入,不可改寫。其中:第0~4個字節為卡片的序列號,第5個字節為序列號的校驗碼;第6個字節為卡片的容量“SIZE”字節;第7、8個字節為卡片的類型號字節,即Tagtype字節;其他字節由廠商另加定義。

綜上所述,我們可以用來存儲數據的空間為第一扇區的第1、2塊,第二扇區到第63扇區的第0、1、2塊,簡而言之就是我們上圖中的“數據塊”。

M1卡結構
共16個扇區,每個扇區4塊(塊0~3),共64塊,按塊號編址為0~63。
第0扇區的塊0(即絕對地址0塊)用於存放廠商代碼,已經固化,不可更改。
其他各扇區:
塊0、塊1、塊2為數據塊,用於存貯數據;
塊3為控制塊,存放密碼A、存取控制、密碼B。


因此,只要做出一個接口,即設計一個函數,讓我們指定要在哪個塊上輸入什么數據就好了,塊的數據范圍是0到63,寫入的數據的格式為16個字節,如:ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff,我們設定一個數組來存儲這個數據:Write_Data[16] = {0x00};
      我們設計了一個函數:Write_to_Card(kuai,Write_Data);其中,kuai就是指定是哪個塊,Write_Data是指要寫入的數據,就是上面所說數組的起始地址,只要事先對這兩個變量進行賦值,就可以輕松向IC卡中寫入數據了,我們設計了另一個函數Read_from_Card(kuai,Read_Data);kuai是指要操作的塊,Read_Data就是從這個塊中讀取出來的數據的存放地,有了數據,不管是在lcd1602還是lcd12864或者是tft液晶顯示都沒什么問題了。

現在讓我們看看Write_to_Card(…)和Read_from_Card(…)的使用方法:

void main()

{

         Write_Data[0] = 0x33;                                //需要寫入IC卡中的數據賦值

         init();                                 //串口通信初始化

         while(1)

         {

                   Write_to_Card(0x01,Write_Data);    //向IC卡中的0x01塊存儲區中寫數據

                   delay_welcome(100);

                   Read_from_Card(0x01,Read_Data);   //從IC卡中的0x01塊存儲區中讀數據      

         }

}

這是Mian函數程序.


讀寫卡的時間是短暫的,而人刷卡時,卡在讀卡器讀卡范圍內的時間相對較長,這就涉及到一次讀卡和重復讀卡的問題了,我們的程序設計的是一次讀卡,也就是說你不管把卡放在讀卡器上多長時間,系統只讀寫一次卡,串口調試助手不會重復顯示一樣的數據,這個功能可不是所有淘寶店可以提供的哦。下面我們來看看程序:

//IC卡中寫數據

unsigned charWrite_to_Card(unsigned char data KuaiN,unsigned char *pData) 

{

         char data status;

         unsigned char idata RevBuffer[4];

         unsigned char data MLastSelectedSnr[4];

         unsigned char dataPassWd[6]={0xff,0xff,0xff,0xff,0xff,0xff};

         unsigned char data place = 0x00;

         PcdReset();

//尋天線區內未進入休眠狀態的卡,返回卡片類型 2字節

         status=PcdRequest(PICC_REQIDL,&RevBuffer[0]);

         if(status!=MI_OK)

         {

                  flag = 0;

                   green = 1;

                   return 0x00;

         }

//判斷當操作卡完成后就停止重復讀寫卡

         if(flag == 1)                                

         { 

                   return 0x00;

         }

//防沖撞,返回卡的序列號 4字節

         status=PcdAnticoll(&RevBuffer[2]);

         if(status!=MI_OK)

         {       

                   return 0x00;

         }                         

         memcpy(MLastSelectedSnr,&RevBuffer[2],4); //拷貝序列號到變量MLastSelectedSnr

//選卡,卡號為MLastSelectedSnr

         status=PcdSelect(MLastSelectedSnr);

         if(status!=MI_OK)

         {

                   return 0;

         }

         //驗證卡片密碼,空白卡都是0xff,0xff,0xff,0xff,0xff,0xff

         status=PcdAuthState(PICC_AUTHENT1A,KuaiN,PassWd,MLastSelectedSnr);

         if(status!=MI_OK)

         {

                   return 0x00;

         }

//向卡中指定塊中寫數據

         status=PcdWrite(KuaiN,pData); 

         if(status!=MI_OK)             

                   return 0;

         }

//命令卡片進入休眠狀態

         PcdHalt();

         flag = 1;

         green = 0;

         return 1;

}

//IC卡中讀數據

unsigned char Read_from_Card(unsigned char data KuaiN,unsigned char *pData) 

{

         char data status;

         unsigned char idata RevBuffer[4];

         unsigned char data MLastSelectedSnr[4];

         unsigned char dataPassWd[6]={0xff,0xff,0xff,0xff,0xff,0xff};

         unsigned char data place = 0x00;

         PcdReset();

//尋天線區內未進入休眠狀態的卡,返回卡片類型 2字節

         status=PcdRequest(PICC_REQIDL,&RevBuffer[0]);

         if(status!=MI_OK)

         {

                   flag = 0;

                   green = 1;

                   return 0x00;

         }

//判斷當操作卡完成后就停止重復讀寫卡

         if(flag == 1)                                

         { 

                   return 0x00;

         }

//防沖撞,返回卡的序列號 4字節

         status=PcdAnticoll(&RevBuffer[2]);

         if(status!=MI_OK)

         {       

                   return 0x00;

         }                         

         memcpy(MLastSelectedSnr,&RevBuffer[2],4); //拷貝序列號到變量MLastSelectedSnr

//選卡,卡號為MLastSelectedSnr

         status=PcdSelect(MLastSelectedSnr);

         if(status!=MI_OK)

         {

                   return 0;

         }

         //驗證卡片密碼,空白卡都是0xff,0xff,0xff,0xff,0xff,0xff

         status=PcdAuthState(PICC_AUTHENT1A,KuaiN,PassWd,MLastSelectedSnr);

         if(status!=MI_OK)

         {

                   return 0x00;

         }

//從卡中對應塊中讀取數據,注意,一次讀出整塊數據,即16字節

         status= PcdRead (KuaiN,pData);

         if(status!=MI_OK)             

                   return 0;

         }       

//命令卡片進入休眠狀態

         PcdHalt();

         flag = 1;

         green = 0;

         //如果程序走到這一步,就說明讀卡成功,並且pData指定人數組中存放着塊數據

         //我們可以通過下面的函數向PC機傳送卡里的數據

Serial_Rs232(pData,16);

         return 1;

}


程序的函數關系:

Main()

|---- Write_to_Card(…);     //寫卡

|         |---- PcdRequest(…);  //尋天線區內未進入休眠狀態的卡

|         |        |--- ClearBitMask(…)

|         |        |       |--- ReadRawRC(…)

|         |        |       |       |---SPIWriteByte(…)

|         |        |       |       |---SPIReadByte(…)

|         |       |        |--- WriteRawRC(…)

|         |        |                |---SPIWriteByte(…)

|         |        |--- WriteRawRC(…)

|         |        |       |--- SPIWriteByte(…)

|         |        |--- SetBitMask(…)

|         |        |       |--- ReadRawRC (…)

|         |        |       |       |---SPIWriteByte(…)

|         |        |       |       |---SPIReadByte(…)

|         |        |       |--- WriteRawRC (…)

|         |        |       |       |---SPIWriteByte(…)

|         |        |--- PcdComMF522

|         |                 |--- WriteRawRC (…)

|         |                         |---SPIWriteByte(…)

|         |                 |--- ClearBitMask (…)

|         |                 |       |--- ReadRawRC(…)

|         |                 |       |      |---SPIWriteByte(…)

|         |                 |       |      |---SPIReadByte(…)

|         |                 |       |--- WriteRawRC(…)

|         |                 |               |---SPIWriteByte(…)

|         |                 |--- SetBitMask (…)

|         |                 |       |--- ReadRawRC (…)

|         |                 |       |      |---SPIWriteByte(…)

|         |                 |       |      |---SPIReadByte(…)

|         |                 |       |--- WriteRawRC (…)

|         |                |       |      |---SPIWriteByte(…)

|         |                 |--- ReadRawRC(…)

|         |                         |---SPIWriteByte(…)

|         |---- PcdAnticoll(…)

|         |        |--- ClearBitMask (…)

|         |        |       |       |--- ReadRawRC(…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |        |       |       |--- WriteRawRC(…)

|         |        |       |               |---SPIWriteByte(…)

|         |        |--- WriteRawRC (…)

|         |        |       |---SPIWriteByte(…)

|         |        |--- PcdComMF522 (…)

|         |        |       |--- WriteRawRC (…)

|         |        |       |       |---SPIWriteByte(…)

|         |        |       |--- ClearBitMask (…)

|         |       |        |      |--- ReadRawRC(…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |        |       |       |--- WriteRawRC(…)

|         |        |       |               |---SPIWriteByte(…)

|         |        |       |--- SetBitMask (…)

|         |        |       |       |--- ReadRawRC (…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |        |       |       |--- WriteRawRC (…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |--- ReadRawRC(…)

|         |       |                |---SPIWriteByte(…)

|         |        |--- SetBitMask (…)

|         |        |      |--- ReadRawRC (…)

|         |        |      |       |---SPIWriteByte(…)

|         |        |      |       |---SPIReadByte(…)

|         |        |      |--- WriteRawRC (…)

|         |        |      |       |---SPIWriteByte(…)

|         |----PcdSelect(…)

|         |        |--- CalulateCRC (…)

|         |        |       |--- WriteRawRC (…)

|         |        |       |       |---SPIWriteByte(…)

|         |        |       |--- ClearBitMask (…)

|         |       |        |      |--- ReadRawRC(…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |        |       |       |--- WriteRawRC(…)

|         |        |       |               |---SPIWriteByte(…)

|         |        |       |--- SetBitMask (…)

|         |        |       |       |--- ReadRawRC (…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |        |       |       |--- WriteRawRC (…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |--- ReadRawRC(…)

|         |       |                |---SPIWriteByte(…)

|         |        |--- ClearBitMask (…)

|         |        |       |       |--- ReadRawRC(…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |        |       |       |--- WriteRawRC(…)

|         |        |       |               |---SPIWriteByte(…)

|         |        |--- PcdComMF522 (…)

|         |        |       |--- WriteRawRC (…)

|         |        |       |       |---SPIWriteByte(…)

|         |        |       |--- ClearBitMask (…)

|         |       |        |      |--- ReadRawRC(…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |       |        |       |--- WriteRawRC(…)

|         |        |       |               |---SPIWriteByte(…)

|         |        |       |--- SetBitMask (…)

|         |        |       |       |--- ReadRawRC (…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |        |       |       |--- WriteRawRC (…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |--- ReadRawRC(…)

|         |        |                |---SPIWriteByte(…)

|         |----PcdAuthState (…)

|         |        |--- PcdComMF522 (…)

|         |        |       |--- WriteRawRC (…)

|         |        |       |       |---SPIWriteByte(…)

|         |       |        |--- ClearBitMask (…)

|         |       |        |      |--- ReadRawRC(…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |        |       |       |--- WriteRawRC(…)

|         |        |       |               |---SPIWriteByte(…)

|         |        |       |--- SetBitMask (…)

|         |        |       |       |--- ReadRawRC (…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |       |       |---SPIReadByte(…)

|         |        |       |       |--- WriteRawRC (…)

|         |        |       |       |       |---SPIWriteByte(…)

|         |        |       |--- ReadRawRC(…)

|         |        |                |---SPIWriteByte(…)

|         |        |--- ReadRawRC (…)

|         |        |        |---SPIWriteByte(…)

|         |        |       |---SPIReadByte(…)

|         |        |--- PcdWrite (…)

|         |                 |---CalulateCRC(…)

|         |                 |       |--- WriteRawRC (…)

|         |                 |       |       |---SPIWriteByte(…)

|         |                 |       |--- ClearBitMask (…)

|         |                |        |       |--- ReadRawRC(…)

|         |                 |       |       |       |---SPIWriteByte(…)

|         |                 |       |       |       |---SPIReadByte(…)

|         |                 |       |       |--- WriteRawRC(…)

|         |                 |        |               |---SPIWriteByte(…)

|         |                 |       |--- SetBitMask (…)

|         |                 |       |       |--- ReadRawRC (…)

|         |                 |        |      |      |---SPIWriteByte(…)

|         |                 |       |       |      |---SPIReadByte(…)

|         |                 |       |       |--- WriteRawRC (…)

|         |                 |       |       |       |---SPIWriteByte(…)

|         |                 |       |--- ReadRawRC(…)

|         |                 |        |      |---SPIWriteByte(…)

|         |                 |---PcdComMF522(…)

|         |                 |       |--- WriteRawRC (…)

|         |                 |       |       |---SPIWriteByte(…)

|         |                 |       |--- ClearBitMask (…)

|         |                |       |       |--- ReadRawRC(…)

|         |                 |       |       |       |---SPIWriteByte(…)

|         |                 |       |       |       |---SPIReadByte(…)

|         |                 |       |       |--- WriteRawRC(…)

|         |                 |       |               |---SPIWriteByte(…)

|         |                 |       |--- SetBitMask (…)

|         |                 |       |       |--- ReadRawRC (…)

|         |                |       |       |       |---SPIWriteByte(…)

|         |                 |       |       |       |---SPIReadByte(…)

|         |                 |       |       |--- WriteRawRC (…)

|         |                 |       |       |       |---SPIWriteByte(…)

|         |                 |       |--- ReadRawRC(…)

|         |                 |                |---SPIWriteByte(…)

|         |----PcdHalt (…)     |

|                          |---CalulateCRC (…)

|                 |         |--- WriteRawRC (…)

|                 |         |       |---SPIWriteByte(…)

|                 |         |--- ClearBitMask (…)

|                 |         |        |---ReadRawRC(…)

|                 |         |       |       |---SPIWriteByte(…)

|                 |         |       |       |---SPIReadByte(…)

|                 |         |       |--- WriteRawRC(…)

|                 |         |        |      |---SPIWriteByte(…)

|                 |         |--- SetBitMask (…)

|                 |         |      |--- ReadRawRC (…)

|                 |         |       |      |---SPIWriteByte(…)

|                 |         |      |       |---SPIReadByte(…)

|                 |         |      |--- WriteRawRC (…)

|                 |         |      |       |---SPIWriteByte(…)

|                 |         |--- ReadRawRC(…)

|                 |         |      |---SPIWriteByte(…)

|                 |---PcdComMF522 (…)

|                           |--- WriteRawRC (…)

|                           |       |---SPIWriteByte(…)

|                           |--- ClearBitMask (…)

|                           |       |--- ReadRawRC(…)

|                           |       |      |---SPIWriteByte(…)

|                           |      |       |---SPIReadByte(…)

|                           |      |--- WriteRawRC(…)

|                           |               |---SPIWriteByte(…)

|                           |--- SetBitMask (…)

|                           |      |--- ReadRawRC (…)

|                           |      |       |---SPIWriteByte(…)

|                           |      |       |---SPIReadByte(…)

|                           |      |--- WriteRawRC (…)

|                           |      |       |---SPIWriteByte(…)

|                           |--- ReadRawRC(…)

|                                   |---SPIWriteByte(…)

|

|----delay_welcome(100);

|----Read_from_Card(…)

         |---- PcdRequest(…);  //尋天線區內未進入休眠狀態的卡

         |        |--- ClearBitMask(…)

         |        |       |--- ReadRawRC(…)

         |        |       |       |---SPIWriteByte(…)

         |        |       |       |---SPIReadByte(…)

         |        |       |--- WriteRawRC(…)

         |        |                |---SPIWriteByte(…)

         |        |--- WriteRawRC(…)

         |        |       |--- SPIWriteByte(…)

         |        |--- SetBitMask(…)

         |        |       |--- ReadRawRC (…)

         |        |       |       |---SPIWriteByte(…)

         |        |       |       |---SPIReadByte(…)

         |        |       |--- WriteRawRC (…)

         |        |       |       |---SPIWriteByte(…)

         |        |--- PcdComMF522

         |                 |--- WriteRawRC (…)

         |                         |---SPIWriteByte(…)

         |                 |--- ClearBitMask (…)

         |                |       |--- ReadRawRC(…)

         |                 |       |      |---SPIWriteByte(…)

         |                 |       |      |---SPIReadByte(…)

         |                 |       |--- WriteRawRC(…)

         |                 |               |---SPIWriteByte(…)

         |                 |--- SetBitMask (…)

         |                 |       |--- ReadRawRC (…)

         |                 |       |      |---SPIWriteByte(…)

         |                 |       |      |---SPIReadByte(…)

         |                 |       |--- WriteRawRC (…)

         |                 |       |      |---SPIWriteByte(…)

         |                 |--- ReadRawRC(…)

         |                         |---SPIWriteByte(…)

         |---- PcdAnticoll(…)

         |        |--- ClearBitMask (…)

         |        |       |       |--- ReadRawRC(…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |       |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC(…)

         |        |       |               |---SPIWriteByte(…)

         |        |--- WriteRawRC (…)

         |        |       |---SPIWriteByte(…)

         |        |--- PcdComMF522 (…)

         |        |       |--- WriteRawRC (…)

         |        |       |       |---SPIWriteByte(…)

         |        |       |--- ClearBitMask (…)

         |       |        |      |--- ReadRawRC(…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |        |      |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC(…)

         |        |       |               |---SPIWriteByte(…)

         |        |       |--- SetBitMask (…)

         |        |       |       |--- ReadRawRC (…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |       |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC (…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |--- ReadRawRC(…)

         |        |                |---SPIWriteByte(…)

         |        |--- SetBitMask (…)

         |        |      |--- ReadRawRC (…)

         |        |      |       |---SPIWriteByte(…)

         |        |      |       |---SPIReadByte(…)

         |        |      |--- WriteRawRC (…)

         |        |      |       |---SPIWriteByte(…)

         |----PcdSelect(…)

         |        |--- CalulateCRC (…)

         |        |       |--- WriteRawRC (…)

         |        |       |       |---SPIWriteByte(…)

         |        |       |--- ClearBitMask (…)

         |       |        |      |--- ReadRawRC(…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |       |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC(…)

         |        |       |               |---SPIWriteByte(…)

         |        |       |--- SetBitMask (…)

         |        |       |       |--- ReadRawRC (…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |       |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC (…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |--- ReadRawRC(…)

         |        |                |---SPIWriteByte(…)

         |        |--- ClearBitMask (…)

         |        |       |       |--- ReadRawRC(…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |       |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC(…)

         |        |       |               |---SPIWriteByte(…)

         |        |--- PcdComMF522 (…)

         |        |       |--- WriteRawRC (…)

         |        |       |       |---SPIWriteByte(…)

         |        |       |--- ClearBitMask (…)

         |       |        |      |--- ReadRawRC(…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |        |      |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC(…)

         |        |       |               |---SPIWriteByte(…)

         |        |       |--- SetBitMask (…)

         |        |       |       |--- ReadRawRC (…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |       |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC (…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |--- ReadRawRC(…)

         |        |                |---SPIWriteByte(…)

         |----PcdAuthState (…)

         |        |--- PcdComMF522 (…)

         |        |       |--- WriteRawRC (…)

         |        |       |       |---SPIWriteByte(…)

         |        |       |--- ClearBitMask (…)

         |       |        |      |--- ReadRawRC(…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |       |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC(…)

         |        |       |               |---SPIWriteByte(…)

         |        |       |--- SetBitMask (…)

         |        |       |       |--- ReadRawRC (…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |       |       |---SPIReadByte(…)

         |        |       |       |--- WriteRawRC (…)

         |        |       |       |       |---SPIWriteByte(…)

         |        |       |--- ReadRawRC(…)

         |        |                |---SPIWriteByte(…)

         |        |--- ReadRawRC (…)

         |        |        |---SPIWriteByte(…)

         |        |       |---SPIReadByte(…)

         |        |--- PcdWrite (…)

         |                 |---CalulateCRC(…)

         |                 |       |--- WriteRawRC (…)

         |                 |       |       |---SPIWriteByte(…)

         |                 |       |--- ClearBitMask (…)

         |                |        |       |--- ReadRawRC(…)

         |                 |       |       |       |---SPIWriteByte(…)

          |                 |       |       |       |---SPIReadByte(…)

         |                 |       |       |--- WriteRawRC(…)

         |                 |        |               |---SPIWriteByte(…)

         |                 |       |--- SetBitMask (…)

         |                 |       |       |--- ReadRawRC (…)

         |                 |        |      |      |---SPIWriteByte(…)

         |                 |       |       |       |---SPIReadByte(…)

         |                 |       |       |--- WriteRawRC (…)

         |                 |       |       |       |---SPIWriteByte(…)

         |                 |       |--- ReadRawRC(…)

         |                |        |      |---SPIWriteByte(…)

         |                 |---PcdComMF522(…)

         |                 |       |--- WriteRawRC (…)

         |                 |       |       |---SPIWriteByte(…)

         |                 |       |--- ClearBitMask (…)

         |                |       |       |--- ReadRawRC(…)

         |                 |       |       |       |---SPIWriteByte(…)

         |                 |       |       |       |---SPIReadByte(…)

         |                |       |       |--- WriteRawRC(…)

         |                 |       |               |---SPIWriteByte(…)

         |                 |       |--- SetBitMask (…)

         |                 |       |       |--- ReadRawRC (…)

         |                |       |       |       |---SPIWriteByte(…)

         |                 |       |       |       |---SPIReadByte(…)

         |                 |       |       |--- WriteRawRC (…)

         |                 |       |       |       |---SPIWriteByte(…)

         |                 |       |--- ReadRawRC(…)

         |                 |                |---SPIWriteByte(…)

         |----PcdHalt (…)     |

                   |---CalulateCRC(…)

                 |         |--- WriteRawRC (…)

                 |         |       |---SPIWriteByte(…)

                 |         |--- ClearBitMask (…)

                 |         |        |---ReadRawRC(…)

                 |         |       |       |---SPIWriteByte(…)

                 |         |       |       |---SPIReadByte(…)

                 |         |       |--- WriteRawRC(…)

                 |         |        |      |---SPIWriteByte(…)

                 |         |--- SetBitMask (…)

                 |         |      |--- ReadRawRC (…)

                 |         |       |      |---SPIWriteByte(…)

                 |         |      |       |---SPIReadByte(…)

                 |         |      |--- WriteRawRC (…)

                 |         |      |       |---SPIWriteByte(…)

                 |         |--- ReadRawRC(…)

                 |         |      |---SPIWriteByte(…)

                 |---PcdComMF522 (…)

                           |--- WriteRawRC (…)

                           |       |---SPIWriteByte(…)

                           |--- ClearBitMask (…)

                           |       |--- ReadRawRC(…)

                           |       |      |---SPIWriteByte(…)

                           |      |       |---SPIReadByte(…)

                           |      |--- WriteRawRC(…)

                           |               |---SPIWriteByte(…)

                           |--- SetBitMask (…)

                           |      |--- ReadRawRC (…)

                           |      |       |---SPIWriteByte(…)

                           |      |       |---SPIReadByte(…)

                           |      |--- WriteRawRC (…)

                           |      |       |---SPIWriteByte(…)

                           |--- ReadRawRC(…)

                                   |---SPIWriteByte(…)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM