在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux驅(qū)動開發(fā)-編寫RFID-RC522射頻刷卡模塊驅(qū)動

DS小龍哥-嵌入式技術(shù) ? 2022-09-17 15:14 ? 次閱讀

【摘要】 當(dāng)前文章介紹如果在Linux系統(tǒng)下編寫MF-RC522模塊驅(qū)動,配合應(yīng)用層,完成IC卡號讀取,扇區(qū)讀寫,密碼驗證等等。當(dāng)前開發(fā)板采用友善之臂Tiny4412,芯片是三星的EXYNOS4412,驅(qū)動代碼沒有采用SPI子系統(tǒng),直接控制IO口模擬SPI時序完成與MF-RC522之間通訊。

1. MF-RC522模塊介紹

MFRC522是應(yīng)用于13.56MHz非接觸式通信中高集成度的讀寫卡芯片,針對“三表”應(yīng)用推出的一款低電壓、低成本、體積小的非接觸式讀寫卡芯片,是智能儀表和便攜式手持設(shè)備研發(fā)的較好選擇。便攜式手持設(shè)備研發(fā)的較好選擇。MFRC522利用了先進(jìn)的調(diào)制和解調(diào)概念,集成了在13.56MHz下所有類型的被動非接觸式通信方式和協(xié)議。支持14443A兼容應(yīng)答器信號。數(shù)字部分處理ISO14443A幀和錯誤檢測。此外,還支持快速CRYPTO1加密算法,用語驗證MIFARE系列產(chǎn)品。MFRC522支持MI FARE系列更高速的非接觸式通信,雙向數(shù)據(jù)傳輸速率高達(dá)424kbit/s。作為13.56MHz高集成度讀寫卡系列芯片族的新成員,MFRC522與MF RC500和MFRC530有不少相似之處,同時也具備許多特點(diǎn)和差異。它與主機(jī)間通信采用SPI模式,有利于減少連線,縮小PCB板體積,降低成本。

淘寶上MFRC522的成品模塊非常多,購買都會送幾張白卡(IC卡),完成讀寫實(shí)驗。

淘寶上購買的MF-RC522模塊基本是引出的SPI接口,實(shí)際上MF-RC522本身還支持IIC,UART協(xié)議,SPI相比來講,協(xié)議更加簡單,速度也快。

當(dāng)前我采用的就是淘寶購買一個封裝好的成品模塊,采用MFRC522原裝芯片設(shè)計讀卡電路,使用方便,成本低廉,適用于設(shè)備開發(fā)、讀卡器開發(fā)等高應(yīng)用的用戶,需要進(jìn)行射頻卡終端設(shè)計/生產(chǎn)的用戶。本模塊可直接裝入各種讀卡器模具。模塊采用電壓為3.3V,通過SPI接口簡單的幾條線就可以直接與用戶任何CPU主板相連接通信,可以保證模塊穩(wěn)定可靠的工作、讀卡距離遠(yuǎn)。

image-20220110135943959image-20220110140109007

當(dāng)前文章介紹如果在Linux系統(tǒng)下編寫MF-RC522模塊驅(qū)動,配合應(yīng)用層,完成IC卡號讀取,扇區(qū)讀寫,密碼驗證等等。當(dāng)前開發(fā)板采用友善之臂Tiny4412,芯片是三星的EXYNOS4412,驅(qū)動代碼沒有采用SPI子系統(tǒng),直接控制IO口模擬SPI時序完成與MF-RC522之間通訊。

購買模塊時,會送一張IC白卡和一個鑰匙扣,雖然形狀不一樣,內(nèi)部芯片型號都是屬于S50卡,常用的公交車卡、地鐵卡、超市會員卡等等,都是屬于這種S50卡。這個洗頭還有一個S70類型的卡,空間比S50大4倍。S50卡內(nèi)部就是一個EEPROM空間,可以存放任何數(shù)據(jù),空間一共分為16個扇區(qū),每個扇區(qū)由4塊(0、1、2、3)組成。實(shí)際操作時,將16個扇區(qū)分為64個塊,按絕對地址編號為0-63。

IC卡沒有電源的,它是由IC芯片、感應(yīng)天線組成,封裝在一個標(biāo)準(zhǔn)的PVC卡片內(nèi),芯片及天線無任何外露部分。是世界上最近幾年發(fā)展起來的一項新技術(shù),它成功的將射頻識別技術(shù)和IC卡技術(shù)結(jié)合起來,結(jié)束了無源(卡中無電源)和免接觸這一難題,是電子器件領(lǐng)域的一大突破??ㄆ谝欢ň嚯x范圍(通常為5—10cm)靠近讀寫器表面,通過無線電波的傳遞來完成數(shù)據(jù)的讀寫操作。

2. 硬件原理連線

3. 驅(qū)動代碼示例

3.1 rc522.c 源代碼

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include "rfid_rc522.h"
#include 
#include 
/*--------------------------------RC522相關(guān)操作代碼---------------------------------------------*/

/*
函數(shù)功能:RC522初始化
Tiny4412硬件連接:
	DO--MISO :GPB_2
	DI--MOSI :GPB_3
	CLK-SCLK :GPB_0
	CS--CS   :GPB_1
	RST--    :GPB_4
*/
void RC522_IO_Init(void)
{
	/*1. 注冊GPIO*/
	gpio_request(EXYNOS4_GPB(0), "RC522_CLK-SCLK");
	gpio_request(EXYNOS4_GPB(1), "RC522_CS");
	gpio_request(EXYNOS4_GPB(2), "MOSI");
	gpio_request(EXYNOS4_GPB(3), "RC522_MOSI");
	gpio_request(EXYNOS4_GPB(4), "RST");
	
	/*2. 配置GPIO口模式*/
	s3c_gpio_cfgpin(EXYNOS4_GPB(0), S3C_GPIO_OUTPUT);  //時鐘
	s3c_gpio_cfgpin(EXYNOS4_GPB(1), S3C_GPIO_OUTPUT);  //片選
	s3c_gpio_cfgpin(EXYNOS4_GPB(2), S3C_GPIO_INPUT);  //輸入模式
	s3c_gpio_cfgpin(EXYNOS4_GPB(3), S3C_GPIO_OUTPUT); //輸出模式
	s3c_gpio_cfgpin(EXYNOS4_GPB(4), S3C_GPIO_OUTPUT); //輸出模式
	
	/*3. 上拉GPIO口*/
	gpio_set_value(EXYNOS4_GPB(0), 1);
	gpio_set_value(EXYNOS4_GPB(1), 1);
	gpio_set_value(EXYNOS4_GPB(3), 1);
	gpio_set_value(EXYNOS4_GPB(4), 1);
}
/*
函數(shù)功能:SPI時序讀寫一個字節(jié)
說    明:SPI底層時序,程序的移植接口
*/
u8 RC522_SPI_ReadWriteOneByte(u8 data_tx)
{
	 u8 data_rx=0;
	 u8 i;
	 for(i=0;i<8;i++)
	 {
		gpio_set_value(EXYNOS4_GPB(0), 0);
		if(data_tx&0x80)gpio_set_value(EXYNOS4_GPB(3), 1);
		else gpio_set_value(EXYNOS4_GPB(3), 0);
		data_tx<<=1; //繼續(xù)發(fā)送下一個數(shù)據(jù)

		gpio_set_value(EXYNOS4_GPB(0), 1);
		data_rx<<=1;
		if(gpio_get_value(EXYNOS4_GPB(2)))data_rx|=0x01;
	 }
	 return data_rx;
}
/*
功能描述:選卡讀取卡存儲器容量
輸入?yún)?shù):serNum 傳入卡序列號
返 回 值:成功返回卡容量
*/
u8 RC522_MFRC522_SelectTag(u8 *serNum) //讀取卡存儲器容量
{     
	u8 i;     
	u8 status;     
	u8 size;     
	u8 recvBits;     
	u8 buffer[9];
	     
	buffer[0]=PICC_ANTICOLL1;	  //防撞碼1     
	buffer[1]=0x70;
	buffer[6]=0x00;						     
	for(i=0;i<4;i++)					
	{
		buffer[i+2]=*(serNum+i);	//buffer[2]-buffer[5]為卡序列號
		buffer[6]^=*(serNum+i);	  //卡校驗碼
	}
	
	RC522_CalulateCRC(buffer,7,&buffer[7]);	//buffer[7]-buffer[8]為RCR校驗碼
	RC522_ClearBitMask(Status2Reg,0x08);
	status=RC522_PcdComMF522(PCD_TRANSCEIVE,buffer,9,buffer,&recvBits);
	
	if((status==MI_OK)&&(recvBits==0x18))    
		size=buffer[0];     
	else    
		size=0;
	return size; 
}
/*
延時函數(shù),納秒級
*/
void RC522_Delay(u32 ns)
{
	ndelay(ns);
}
/*
函數(shù)功能:RC522芯片初始化
*/
void RC522_Init(void)
{
  RC522_IO_Init();			 //RC522初始化
  RC522_PcdReset();  		 //復(fù)位RC522 
  RC522_PcdAntennaOff();	 //關(guān)閉天線
  msleep(2);  		  		 //延時2毫秒
  RC522_PcdAntennaOn();		 //開啟天線
  M500PcdConfigISOType('A'); //設(shè)置RC632的工作方式
}
/*
函數(shù)功能:復(fù)位RC522
*/
void RC522_Reset(void)
{
  RC522_PcdReset();				//復(fù)位RC522
  RC522_PcdAntennaOff();		//關(guān)閉天線
  msleep(2);  		  		    //延時2毫秒
  RC522_PcdAntennaOn();		    //開啟天線  	
}
/*
功    能: 尋卡
參數(shù)說明: req_code[IN]:尋卡方式
                0x52   = 尋感應(yīng)區(qū)內(nèi)所有符合14443A標(biāo)準(zhǔn)的卡
                0x26   = 尋未進(jìn)入休眠狀態(tài)的卡
          			pTagType[OUT]:卡片類型代碼
                0x4400 = Mifare_UltraLight
                0x0400 = Mifare_One(S50)
                0x0200 = Mifare_One(S70)
                0x0800 = Mifare_Pro(X)
                0x4403 = Mifare_DESFire
返 回 值: 成功返回MI_OK
*/
char RC522_PcdRequest(u8 req_code,u8 *pTagType)
{
	char status;  
	u8 unLen;
	u8 ucComMF522Buf[MAXRLEN];  	   		// MAXRLEN  18

	RC522_ClearBitMask(Status2Reg,0x08);	//清RC522寄存器位,/接收數(shù)據(jù)命令
	RC522_WriteRawRC(BitFramingReg,0x07);   //寫RC632寄存器
	RC522_SetBitMask(TxControlReg,0x03);    //置RC522寄存器位
 
	ucComMF522Buf[0]=req_code; 	    //尋卡方式
	
	status=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); //通過RC522和ISO14443卡通訊
	
	if((status==MI_OK)&&(unLen==0x10))
	{    
		*pTagType=ucComMF522Buf[0];
		*(pTagType+1)=ucComMF522Buf[1];
	}
	else
	{
	  status = MI_ERR;
	}  
	return status;
}
/*
功    能: 防沖撞
參數(shù)說明: pSnr[OUT]:卡片序列號,4字節(jié)
返    回: 成功返回MI_OK
*/
char RC522_PcdAnticoll(u8 *pSnr)
{
    char status;
    u8 i,snr_check=0;
    u8 unLen;
    u8 ucComMF522Buf[MAXRLEN]; 
    
    RC522_ClearBitMask(Status2Reg,0x08);  //清RC522寄存器位 
    RC522_WriteRawRC(BitFramingReg,0x00); //寫
    RC522_ClearBitMask(CollReg,0x80);     //清
 
    ucComMF522Buf[0]=PICC_ANTICOLL1;   	 //PICC_ANTICOLL1 = 0x93
    ucComMF522Buf[1]=0x20;
	
    status=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen); //0x0c,通過RC522和ISO14443卡通訊
											 //PCD_TRANSCEIVE =發(fā)送并接收數(shù)據(jù)
											 //2:寫入卡里的數(shù)據(jù)字節(jié)長度
											 //ucComMF522Buf:存放數(shù)據(jù)的地址
											 //unLen:從卡里讀出的數(shù)據(jù)長度
    if(status==MI_OK)
    {
    	 for(i=0;i<4;i++)
			 {   
					 *(pSnr+i)=ucComMF522Buf[i];  //把讀到的卡號賦值給pSnr
					 snr_check^=ucComMF522Buf[i];
			 }
			 if(snr_check!=ucComMF522Buf[i])
			 {
					status = MI_ERR;
			 }
    }   
    RC522_SetBitMask(CollReg,0x80);
    return status;
}
/*
功    能:選定卡片
參數(shù)說明:pSnr[IN]:卡片序列號,4字節(jié)
返    回:成功返回MI_OK
*/
char RC522_PcdSelect(u8 *pSnr)
{
    char status;
    u8 i;
    u8 unLen;
    u8 ucComMF522Buf[MAXRLEN]; 
    
    ucComMF522Buf[0]=PICC_ANTICOLL1;
    ucComMF522Buf[1]=0x70;
    ucComMF522Buf[6]=0;
	
    for(i=0;i<4;i++)
    {
    	ucComMF522Buf[i+2]=*(pSnr+i);
    	ucComMF522Buf[6]^=*(pSnr+i);
    }
		
    RC522_CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf[7]); //用MF522計算CRC16函數(shù),校驗數(shù)據(jù)
    RC522_ClearBitMask(Status2Reg,0x08);	                //清RC522寄存器位
    status=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen);
    if((status==MI_OK)&&(unLen==0x18))status=MI_OK;
    else status=MI_ERR;
		
    return status;
}
/*
功    能:驗證卡片密碼
參數(shù)說明:auth_mode[IN]: 密碼驗證模式
                 0x60 = 驗證A密鑰
                 0x61 = 驗證B密鑰 
          addr[IN]:塊地址
          pKey[IN]:扇區(qū)密碼
          pSnr[IN]:卡片序列號,4字節(jié)
返    回:成功返回MI_OK
*/               
char RC522_PcdAuthState(u8 auth_mode,u8 addr,u8 *pKey,u8 *pSnr)
{
    char status;
    u8 unLen;
    u8 ucComMF522Buf[MAXRLEN];  //MAXRLEN  18(數(shù)組的大小)
	  
	  //驗證模式+塊地址+扇區(qū)密碼+卡序列號   
    ucComMF522Buf[0]=auth_mode;		
    ucComMF522Buf[1]=addr;				
    memcpy(&ucComMF522Buf[2],pKey,6); //拷貝,復(fù)制
    memcpy(&ucComMF522Buf[8],pSnr,4); 
	 
    status=RC522_PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen);
    if((status!= MI_OK)||(!(RC522_ReadRawRC(Status2Reg)&0x08)))status = MI_ERR;
    return status;
}
/*
功    能:讀取M1卡一塊數(shù)據(jù)
參數(shù)說明: 
addr:塊地址
p   :讀出的塊數(shù)據(jù),16字節(jié)
返    回:成功返回MI_OK
*/ 
char RC522_PcdRead(u8 addr,u8 *p)
{
    char status;
    u8 unLen;
    u8 i,ucComMF522Buf[MAXRLEN]; //18

    ucComMF522Buf[0]=PICC_READ;
    ucComMF522Buf[1]=addr;
    RC522_CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);
    status=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);//通過RC522和ISO14443卡通訊
    if((status==MI_OK&&(unLen==0x90)))
    {
		for(i=0;i<16;i++)
		{
				*(p +i)=ucComMF522Buf[i];
		}
    }
    else
	{   
		status=MI_ERR;
	}
    return status;
}
/*
功    能:寫數(shù)據(jù)到M1卡指定塊
參數(shù)說明:addr:塊地址
          p   :向塊寫入的數(shù)據(jù),16字節(jié)
返    回:成功返回MI_OK
*/                  
char RC522_PcdWrite(u8 addr,u8 *p)
{
    char status;
    u8 unLen;
    u8 i,ucComMF522Buf[MAXRLEN]; 
    
    ucComMF522Buf[0]=PICC_WRITE;// 0xA0 //寫塊
    ucComMF522Buf[1]=addr;      //塊地址
    RC522_CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);
 
    status=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);

    if((status!= MI_OK)||(unLen != 4)||((ucComMF522Buf[0]&0x0F)!=0x0A))
	{
		status = MI_ERR;
	}
		
    if(status==MI_OK)
    {
        for(i=0;i<16;i++)//向FIFO寫16Byte數(shù)據(jù) 
        {    
        	ucComMF522Buf[i]=*(p +i);   
        }
        RC522_CalulateCRC(ucComMF522Buf,16,&ucComMF522Buf[16]);
        status = RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,18,ucComMF522Buf,&unLen);
        if((status != MI_OK)||(unLen != 4)||((ucComMF522Buf[0]&0x0F)!=0x0A))
		{   
			status = MI_ERR;   
		}
    }
    return status;
}
/*
功    能:命令卡片進(jìn)入休眠狀態(tài)
返    回:成功返回MI_OK
*/
char RC522_PcdHalt(void)
{
    u8 status;
    u8 unLen;
    u8 ucComMF522Buf[MAXRLEN]; //MAXRLEN==18
	status=status;
    ucComMF522Buf[0]=PICC_HALT;
    ucComMF522Buf[1]=0;
    RC522_CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);
    status=RC522_PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);
    return MI_OK;
}
/*
功    能:用MF522計算CRC16函數(shù)
參    數(shù):
		*pIn :要讀數(shù)CRC的數(shù)據(jù)
		len:-數(shù)據(jù)長度
		*pOut:計算的CRC結(jié)果
*/
void RC522_CalulateCRC(u8 *pIn ,u8 len,u8 *pOut )
{
    u8 i,n;
    RC522_ClearBitMask(DivIrqReg,0x04);  //CRCIrq = 0  
    RC522_WriteRawRC(CommandReg,PCD_IDLE);
    RC522_SetBitMask(FIFOLevelReg,0x80); //清FIFO指針
    
  //向FIFO中寫入數(shù)據(jù)  
	for(i=0;i
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 射頻
    +關(guān)注

    關(guān)注

    106

    文章

    5733

    瀏覽量

    169846
  • RFID
    +關(guān)注

    關(guān)注

    390

    文章

    6390

    瀏覽量

    241268
  • RC522
    +關(guān)注

    關(guān)注

    7

    文章

    57

    瀏覽量

    24442
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)實(shí)例:RC522無線射頻項目資料

    單片機(jī)實(shí)例:RC522無線射頻項目資料,推薦下載!
    發(fā)表于 06-03 22:09

    ESP32驅(qū)動MFRC522 RFID模塊讀寫IC卡數(shù)據(jù)

    本文將介紹ESP32開發(fā)驅(qū)動MFRC522 RFID模塊,讀取RFID卡原始數(shù)據(jù)、獲取
    的頭像 發(fā)表于 05-28 15:52 ?114次閱讀
    ESP32<b class='flag-5'>驅(qū)動</b>MFRC<b class='flag-5'>522</b> <b class='flag-5'>RFID</b><b class='flag-5'>模塊</b>讀寫IC卡數(shù)據(jù)

    SI522A 低功耗尋卡與多款13.56MHZ 兼容開發(fā)資料

    /IEC 14443 B),支持自動載波偵測功能(ACD)。 無需外圍其他電路,Si522A的內(nèi)部發(fā)送器可驅(qū)動讀寫器天線與 ISO/IEC 14443 A/MIFARE 卡和應(yīng)答機(jī)通信。接收器模塊提供一
    發(fā)表于 02-27 13:53

    迅為RK3568開發(fā)驅(qū)動指南Linux中通用SPI設(shè)備驅(qū)動

    迅為RK3568開發(fā)驅(qū)動指南Linux中通用SPI設(shè)備驅(qū)動
    的頭像 發(fā)表于 01-23 11:02 ?2567次閱讀
    迅為RK3568<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>驅(qū)動</b>指南<b class='flag-5'>Linux</b>中通用SPI設(shè)備<b class='flag-5'>驅(qū)動</b>

    迅為RK3568開發(fā)板SPI驅(qū)動指南-mcp2515驅(qū)動編寫:讀寄存器函數(shù)

    迅為RK3568開發(fā)板SPI驅(qū)動指南-mcp2515驅(qū)動編寫:讀寄存器函數(shù)
    的頭像 發(fā)表于 01-20 14:43 ?938次閱讀
    迅為RK3568<b class='flag-5'>開發(fā)</b>板SPI<b class='flag-5'>驅(qū)動</b>指南-mcp2515<b class='flag-5'>驅(qū)動</b><b class='flag-5'>編寫</b>:讀寄存器函數(shù)

    RC522不定時檢測不到信號

    這是一個插卡取電使用的RC522射頻電路,過幾天就死機(jī)了一樣,有沒有大神給點(diǎn)意見 單片機(jī)用的是STC15W404AS
    發(fā)表于 01-14 13:42

    CI522 NFC刷卡電動車儀表方案

    電動車NFC一鍵啟動 NFC智能刷卡解鎖,為你解決四處尋找鑰匙的困擾,提升電動車智能化。 Ci522是一款高度集成的13.56MHz非接觸式讀寫器芯片,專為電動車NFC一鍵啟動系統(tǒng)(包括儀表總成
    發(fā)表于 12-26 15:52

    RC522 RFID實(shí)驗的小系統(tǒng)板接線說明

    6.RC522 RFID實(shí)驗的小系統(tǒng)板接線說
    發(fā)表于 11-22 16:36 ?0次下載

    Air780EP之RC522開發(fā)板,你了解嗎?

    ?本文講解合宙Air780EP開發(fā)RC522實(shí)例。 本文檔適用于Air780EP開發(fā)板; 關(guān)聯(lián)文檔和使用工具; rc522 - rc522
    的頭像 發(fā)表于 11-03 08:21 ?603次閱讀
    Air780EP之<b class='flag-5'>RC522</b><b class='flag-5'>開發(fā)</b>板,你了解嗎?

    4G通信先鋒:Air780EP開發(fā)板與RC522的結(jié)合

    最近,一直有朋友問我Air780EP開發(fā)RC522, 今天抽空給大家展示一下示例: 本文檔適用于Air780EP開發(fā)板 關(guān)聯(lián)文檔和使用工具
    的頭像 發(fā)表于 10-29 14:29 ?435次閱讀
    4G通信先鋒:Air780EP<b class='flag-5'>開發(fā)</b>板與<b class='flag-5'>RC522</b>的結(jié)合

    低功耗4G模組:Air780EP開發(fā)RC522實(shí)例

    ? 本文講解合宙Air780EP開發(fā)RC522實(shí)例,文末【閱讀原文】獲取最新資料。 本文檔適用于Air780EP開發(fā)板 關(guān)聯(lián)文檔和使用工具 LuatOS-Soc固件獲取 https
    的頭像 發(fā)表于 10-21 17:01 ?543次閱讀
    低功耗4G模組:Air780EP<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>RC522</b>實(shí)例

    SI522A 與 恩智浦 RC522 刷卡對比

    模式下,芯片大部分時間處于休眠狀態(tài),由3K RC定時喚醒,以極低的功耗偵測13.56MHz的射頻場和射頻卡,檢測到場或卡自動產(chǎn)生中斷并喚醒MCU。偵測場和卡的功能可以單獨(dú)使能,整個ACD過程不需要
    發(fā)表于 09-30 14:19

    linux驅(qū)動程序如何加載進(jìn)內(nèi)核

    Linux系統(tǒng)中,驅(qū)動程序是內(nèi)核與硬件設(shè)備之間的橋梁。它們允許內(nèi)核與硬件設(shè)備進(jìn)行通信,從而實(shí)現(xiàn)對硬件設(shè)備的控制和管理。 驅(qū)動程序的編寫 驅(qū)動
    的頭像 發(fā)表于 08-30 15:02 ?1000次閱讀

    Linux 驅(qū)動開發(fā)與應(yīng)用開發(fā),你知道多少?

    一、Linux驅(qū)動開發(fā)與應(yīng)用開發(fā)的區(qū)別開發(fā)層次不同:Linux
    的頭像 發(fā)表于 08-30 12:16 ?1474次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>與應(yīng)用<b class='flag-5'>開發(fā)</b>,你知道多少?

    TJDZ-RC522 RFID讀卡模塊用戶操作手冊

    RC522讀卡模塊使用說明
    發(fā)表于 06-19 14:32 ?2次下載
    主站蜘蛛池模板: 视频一区二区三区在线观看 | 午夜剧j| 911国产自产精选 | 97精品伊人久久大香线蕉 | 天天操操操操操操 | 在线色资源 | 国产福利不卡一区二区三区 | 天天干天天射天天 | 久久国产高清字幕中文 | 免费高清在线爱做视频 | 欧美黑人三级 | 国外免费精品视频在线观看 | 亚洲午夜免费 | 欧美一区二区三区不卡视频 | 一级片在线播放 | 看黄视频免费 | 国产精品女丝袜白丝袜 | 天天色天天操天天 | 最近2018中文字幕2019视频 | 亚洲资源在线视频 | 精品国产乱码久久久久久浪潮 | 色多多官网 | 伊人网网| 国产精品永久免费自在线观看 | 国模久久| 性夜影院爽黄a爽在线看香蕉 | 国产小视频在线免费 | 56pao强力打造| 色宅男 | 四虎影片国产精品8848 | 91精选视频在线观看 | 中国成熟xxx视频 | 午夜在线视频免费 | 国产成人在线播放视频 | 黄色一级视频欧美 | 永久免费观看午夜视频在线 | 4hu四虎永久免在线视 | 午夜久久福利 | 欧美性猛交xxx嘿人猛交 | 丰满放荡岳乱妇91www | 午夜毛片免费观看视频 |