資源簡介
基于M0的LPC11C14射頻模塊例程,射頻模塊采用的是CY1444芯片,包含RFID相關(guān)代碼。

代碼片段和文件信息
/*******************************************************************************
*?File:????rfid.c?
*?Author:??FarSight?Design?Team
*?Version:?V1.00
*?Date:????2011.06.21
*?Brief:???RFID?program
*******************************************************************************/?
/*?Includes?------------------------------------------------------------------*/
#include?
#include?“LPC11xx.h“
#include?“gpio.h“
#include?“ssp.h“
#include?“oled2864.h“
#include?“key.h“
#include?“tools.h“
#include?“rfid.h“
#include?“menu.h“
#include?“scp.h“
#include?“spi_uart.h“
/*?Private?typedef?-----------------------------------------------------------*/
//LPC11C14通過SPI總線向CY1444傳送的命令 (這些命令是CY1444指令系統(tǒng)定義好的,具體可以查看其通訊指令表)
//其中第一個(gè)字節(jié)表示整個(gè)命令碼長度,第二個(gè)字節(jié)表命令字(可以特定轉(zhuǎn)換為要接收的信息長度),后面的表示數(shù)據(jù)域內(nèi)容
const?uint8_t?RFID_READ_MOD_TYPE_01[2]?=?{0x02?0x01};?//讀頭型
const?uint8_t?RFID_READ_TYPE_19[2]?=?{0x02?0x19};?//讀卡類型
const?uint8_t?RFID_READ_CARD_20[2]?=?{0x02?0x20}; //讀卡序列號
//讀數(shù)據(jù)塊,第三個(gè)字節(jié)開始的內(nèi)容表示:密鑰標(biāo)志+字節(jié)塊號+6字節(jié)的密匙
const?uint8_t?RFID_READ_DATA_BLOCK_21[10]?=??{0x0a?0x21?0x00?0x01?0xff?0xff?0xff?0xff?0xff?0xff};?
//寫數(shù)據(jù)塊,第二行到第三行表示要寫入數(shù)據(jù)塊的內(nèi)容
const?uint8_t?RFID_WRITE_DATA_BLOCK_22[26]?=?{0x1a?0x22?0x00?0x01?0xff?0xff?0xff?0xff?0xff?0xff
??????????????????????????????????????????????0x00?0x01?0x02?0x03?0x04?0x05?0x06?0x07
??????0x08?0x09?0x0a?0x0b?0x0c?0x0d?0x0e?0x0f};?
/*?Private?function?prototypes?-----------------------------------------------*/
/*?Private?functions?---------------------------------------------------------*/
/*******************************************************************************
*?Function?Name??:?RFID_INT_Init
*?Description????:?Init?PIO2_8
*?Input??????????:?None
*?Output?????????:?None
*?Return?????????:?None
*******************************************************************************/
void?RFID_INT_Init(void)
{??
???GPIOSetDir(PORT280);//PIO2_8引腳輸入狀態(tài),接收中斷信號
???GPIOSetValue(PORT280);???
???GPIOSetInterrupt(PORT28000);//引腳的中斷觸發(fā)方式為下降沿觸發(fā)
???GPIOIntEnable(PORT28);?//PIO2_8中斷使能
}
/*******************************************************************************
*?Function?Name??:?Read_Goods
*?Description????:?Read_Goods
*?Input??????????:?None
*?Output?????????:?None
*?Return?????????:?1:success?0:fail
*******************************************************************************/
//模擬獲取倉庫貨物信息,當(dāng)刷卡時(shí),OLED屏幕顯示卡號信息,并通過ZigBee向A8板發(fā)送該信息
uint8_t Read_Goods(void)
{
??int?irst=0?;
??uint16_t?x;
??uint8_t rbuf[36]?chksum;
??char buf[8];
??uint32_t n?j;
?if?(p2_8_counter?>?1) //p2_8_counter?表PIO2_8的中斷標(biāo)志位,初值為0,若發(fā)生中斷,則中斷處理函數(shù)將其加1;(這里大于1是因?yàn)殚_發(fā)板復(fù)位時(shí)也發(fā)生一次中斷)
?{???
????if(!GPIOGetValue(PORT2?8))//有卡靠近RFID模塊時(shí)主芯片PIO2_8引腳輸入低電平
???{?
??while(1)
??{
??????j?=?RFID_Operate((uint8_t?*)RFID_READ_CARD_20?rbuf); ?//一次SPI通信,主設(shè)備發(fā)送命令,從設(shè)備響應(yīng)并傳回相關(guān)信息;函數(shù)返回應(yīng)答命令碼+校驗(yàn)碼長度
?
??????printf(“\r\n“);
??????for(n=2?x=0;?(j>=7)&&(n
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????377342??2010-05-27?07:31??M0_RFID模塊解析\CY14443?SPI接口模塊使用說明.pdf
?????文件???????88064??2013-01-30?10:59??M0_RFID模塊解析\LPC11C14射頻模塊.doc
?????目錄???????????0??2018-08-30?11:49??M0_RFID模塊解析\RFID代碼\
?????文件???????10137??2013-01-30?14:04??M0_RFID模塊解析\RFID代碼\rfid.c
?????文件???????20275??2013-01-21?19:43??M0_RFID模塊解析\RFID代碼\ssp.c
?????目錄???????????0??2018-08-30?11:49??M0_RFID模塊解析\
評論
共有 條評論