FM17522-源代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

FM17522IC卡读卡器源码此文档一个包含3个文件,分别为fm17522_reg.h、fm17522.h、fm17522.cfm17522_reg.h为FM17522寄存器地址宏定义fm17522.h为FM17522源码头文件fm17522.c为FM17522源码源文件/***********************************************************************************FM17522源码头文件**********************************************************************************/#ifndef__FM17522_H#define__FM17522_H#includestm32f2xx_hal.h#includespi_board.h#includefm17522_reg.h/*FM17522通讯时返回的错误代码*/#defineFM17522_OK(0)#defineFM17522_NOTAGERR(-1)#defineFM17522_ERR(-2)/*MCUsystemclockfrequency*/#definecpu_freqSystemCoreClock/*delayservice*/#definefm17522_delay(ms)HAL_Delay(ms)/***********************************************************************************FM17522IC-Card硬件接口定义,包括CS片选引脚的写电平、硬件SPI读写数据**********************************************************************************//*FM17522CS-Pin写电平*/#definefm17522_cs_write_high()//spi2_cs_write_level(GPIO_PIN_SET)#definefm17522_cs_write_low()//spi2_cs_write_level(GPIO_PIN_RESET)/*FM17522RESET-Pin写电平*/#definefm17522_reset_write_high()//HAL_GPIO_WritePin(IC_PWDN_GPIO_PORT,IC_PWDN_GPIO_PIN,GPIO_PIN_SET)#definefm17522_reset_write_low()//HAL_GPIO_WritePin(IC_PWDN_GPIO_PORT,IC_PWDN_GPIO_PIN,GPIO_PIN_RESET)/*FM17522IRQ-Pin读电平*/#definefm17522_irq_read()//HAL_GPIO_ReadPin(IC_IRQ_GPIO_PORT,IC_IRQ_GPIO_PIN)/***@briefFM17522写数据.*@paramdata:写入的数据指针*@paramsize:数据指针长度*@retvalNone*/staticvoidfm17522_write_data(uint8_t*data,uint16_tsize){/*用户根据自己的接口修改对应的函数*///spi2_write_data(data,size);}/***@briefFM17522读数据.*@paramdata:读入的数据指针*@paramsize:数据指针长度*@retvalNone*/staticvoidfm17522_read_data(uint8_t*data,uint16_tsize){/*用户根据自己的接口修改对应的函数*///spi2_read_data(data,size);}#endif/*__FM17522_H*//***********************************************************************************FM17522寄存器地址宏定义**********************************************************************************/#ifndef__FM17522_REG_H#define__FM17522_REG_H/*FM17522命令字*/#definePCD_IDLE0x00//取消当前命令#definePCD_AUTHENT0x0E//验证密钥#definePCD_RECEIVE0x08//接收数据#definePCD_TRANSMIT0x04//发送数据#definePCD_TRANSCEIVE0x0C//发送并接收数据#definePCD_RESETPHASE0x0F//复位#definePCD_CALCCRC0x03//CRC计算/*Mifare_One卡片命令字*/#definePICC_REQIDL0x26//寻天线区内未进入休眠状态#definePICC_REQALL0x52//寻天线区内全部卡#definePICC_ANTICOLL10x93//防冲撞#definePICC_ANTICOLL20x95//防冲撞#definePICC_AUTHENT1A0x60//验证A密钥#definePICC_AUTHENT1B0x61//验证B密钥#definePICC_READ0x30//读块#definePICC_WRITE0xA0//写块#definePICC_DECREMENT0xC0//扣款#definePICC_INCREMENT0xC1//充值#definePICC_RESTORE0xC2//调块数据到缓冲区#definePICC_TRANSFER0xB0//保存缓冲区中数据#definePICC_HALT0x50//休眠/*FM17522FIFO长度定义*/#defineDEF_FIFO_LENGTH64//FIFOsize=64byte/*FM17522寄存器地址定义*//*PAGE0*/#defineRFU000x00#defineCommandReg0x01#defineComIEnReg0x02#defineDivlEnReg0x03#defineComIrqReg0x04#defineDivIrqReg0x05#defineErrorReg0x06#defineStatus1Reg0x07#defineStatus2Reg0x08#defineFIFODataReg0x09#defineFIFOLevelReg0x0A#defineWaterLevelReg0x0B#defineControlReg0x0C#defineBitFramingReg0x0D#defineCollReg0x0E#defineRFU0F0x0F/*PAGE1*/#defineRFU100x10#defineModeReg0x11#defineTxModeReg0x12#defineRxModeReg0x13#defineTxControlReg0x14#defineTxAutoReg0x15#defineTxSelReg0x16#defineRxSelReg0x17#defineRxThresholdReg0x18#defineDemodReg0x19#defineRFU1A0x1A#defineRFU1B0x1B#defineMifareReg0x1C#defineRFU1D0x1D#defineRFU1E0x1E#defineSerialSpeedReg0x1F/*PAGE2*/#defineRFU200x20#defineCRCResultRegM0x21#defineCRCResultRegL0x22#defineRFU230x23#defineModWidthReg0x24#defineRFU250x25#defineRFCfgReg0x26#defineGsNReg0x27#defineCWGsCfgReg0x28#defineModGsCfgReg0x29#defineTModeReg0x2A#defineTPrescalerReg0x2B#defineTReloadRegH0x2C#defineTReloadRegL0x2D#defineTCounterValueRegH0x2E#defineTCounterValueRegL0x2F/*PAGE3*/#defineRFU300x30#defineTestSel1Reg0x31#defineTestSel2Reg0x32#defineTestPinEnReg0x33#defineTestPinValueReg0x34#defineTestBusReg0x35#defineAutoTestReg0x36#defineVersionReg0x37#defineAnalogTestReg0x38#defineTestDAC1Reg0x39#defineTestDAC2Reg0x3A#defineTestADCReg0x3B#defineRFU3C0x3C#defineRFU3D0x3D#defineRFU3E0x3E#defineRFU3F0x3F#endif/*__FM17522_REG_H*//***********************************************************************************FM17522源码源文件**********************************************************************************/#includefm17522.h#defineMAXRLEN18/*函数申明*/intfm_pcd_reset(void);voidfm_pcd_antenna_on(void);voidfm_pcd_antenna_off(void);intfm_pcd_request_card(uint8_treq_code,uint8_t*card_type);intfm_pcd_anti_collision(uint8_t*sn);intfm_pcd_select_card(uint8_t*sn);intfm_pcd_auth_key(uint8_tauth_mode,uint8_taddr,uint8_t*key,uint8_t*sn);intfm_pcd_read_card(uint8_taddr,uint8_t*data);intfm_pcd_write_card(uint8_taddr,uint8_t*data);intfm_pcd_halt(void);intfm_pcd_value_pay(uint8_tdd_mode,uint8_taddr,uint8_t*value);intfm_pcd_value_backup(uint8_tsourceaddr,uint8_tgoaladdr);intfm_pcd_communicate(uint8_tcommand,\uint8_t*data_in,\uint8_tlength,\uint8_t*data_out,\uint16_t*length_bit);voidfm_crc_calculate(uint8_t*data_in,uint8_tlength,uint8_t*data_out);voidfm17522_clear_mask_bit(uint8_treg,uint8_tmask);voidfm17522_set_mask_bit(uint8_treg,uint8_tmask);voidfm17522_write_regi

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功