STM8 RC522 读写IC卡程序.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM8 RC522 读写IC卡程序

#include stm8s.h#include uart.hvoid Delay(u32 nCount);extern u8 RxBuffer[RxBufferSize];extern u8 UART_RX_NUM;unsigned char CT[2];//卡类型unsigned char SN[4]; //卡号unsigned char write[16] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10};unsigned char read[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};unsigned char key[6] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};#define countof(a) (sizeof(a) / sizeof(*(a)))#define BufferSize (countof(Tx_Buffer)-1)u8 Tx_Buffer[] = STM8S RFID TEST;u8 Rx_Buffer[BufferSize];u32 FLASH_ID ;void cardNo2String(u8 *cardNo, u8 *str);void main(void){ unsigned char status; /*设置内部时钟16M为主时钟*/ CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); status = memcmp(read,write,16); GPIO_DeInit(GPIOA); GPIO_DeInit(GPIOC); Uart_Init(); GPIO_Init( GPIOA, GPIO_PIN_4, GPIO_MODE_OUT_PP_HIGH_FAST); InitRc522(); UART2_SendString(Tx_Buffer,BufferSize); while(1) { status = PcdRequest(PICC_REQALL,CT); /*扫描卡*/ status = PcdAnticoll(SN); /*防冲撞*/ if (status==MI_OK) { GPIO_LOW(GPIOA, GPIO_PIN_4); //寻卡成功 UART2_SendString(The card Id is:,15); //串口发送卡号 cardNo2String(SN, Tx_Buffer); UART2_SendString(Tx_Buffer, 17); Reset_RC522(); } else { GPIO_HIGH(GPIOA, GPIO_PIN_4); } }}void Delay(u32 nCount){ while (nCount != 0) { nCount--; }}void Hex2String(u8 hex,u8 *str){ str[0] = (hex / 100) + 0; str[1] = (hex % 100 / 10) + 0; str[2] = (hex % 10) + 0;}void cardNo2String(u8 *cardNo, u8 *str){ u8 Count = 0; for(Count = 0; Count 4; Count++) { Hex2String(cardNo[Count], str + Count * 4); if(Count == 3) { str[15] = \n; } else { str[Count * 4 + 3] = :; } }}void delay_ns(u32 ns){ u32 i; for(i=0;ins;i++) { asm(nop); asm(nop); asm(nop); }}u8 SPIWriteByte(u8 Byte){ u8 tmp; while (SPI_GetFlagStatus( SPI_FLAG_TXE) == RESET); SPI_SendData(Byte); if (SPI_GetFlagStatus(SPI_FLAG_RXNE)) { tmp = SPI_ReceiveData(); } return tmp; }void SPI2_Init(void){ SPI_DeInit(); SPI_Init( SPI_FIRSTBIT_MSB,

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档