找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6454|回复: 5
打印 上一主题 下一主题
收起左侧

stm32+rc522源程序

[复制链接]
跳转到指定楼层
楼主
ID:246492 发表于 2017-11-6 12:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是是基于STM32F103ZET6的MFRC522读卡实验

程序正常运行时,LED0一闪一闪
读到卡片时,LED1灯点亮,并串口打印卡片类型和UID

接口定义如下:

SPI2_SCK         PB13
SPI2_MISO        PB14
SPI2_MOSI         PB15
RCC522_NSS(SDA        PB0
RCC522_RST(CE)        PC4

LED0             PD13
LED1             PG14

stm32单片机源程序如下:
  1. #include "main.h"

  2. u8 Byte_HexDispaly(u8 dat)
  3. {
  4.         if(dat>=10&&dat<16) dat+=0x07;            //A-F +0x37
  5.         dat+=0x30;                                                                                                   //0-9 +0x30
  6.         return dat;
  7. }

  8. void Uart1_SendByte(u8 ch)
  9. {
  10.                 while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
  11.     USART1->DR = (u8) ch;   
  12. }
  13. void Uart1_SendHexDisplay(u8 ch)
  14. {
  15.         Uart1_SendByte(Byte_HexDispaly(ch>>4));     //高半字节
  16.         Uart1_SendByte(Byte_HexDispaly(ch&0x0f));                //低半字节
  17. }

  18. void Uart1_SendString(char *s)
  19. {
  20.     while (*s)                          //
  21.     {
  22.         Uart1_SendByte(*s++);      
  23.     }
  24. }

  25. //==============================================================================
  26. //读取卡的类型
  27. //读取卡的ID号
  28. //==============================================================================
  29. void ReaderCard(void)
  30. {
  31.     if(PcdRequest(PICC_REQALL,Temp)==MI_OK)        //选卡
  32.     {
  33.       if(Temp[0]==0x04&&Temp[1]==0x00)  
  34.           printf("MFOne-S50");
  35.         else if(Temp[0]==0x02&&Temp[1]==0x00)
  36.           printf("MFOne-S70");
  37.         else if(Temp[0]==0x44&&Temp[1]==0x00)
  38.           printf("MF-UltraLight");
  39.         else if(Temp[0]==0x08&&Temp[1]==0x00)
  40.           printf("MF-Pro");
  41.         else if(Temp[0]==0x44&&Temp[1]==0x03)
  42.           printf("MF Desire");
  43.         else
  44.           printf("Unknown");
  45.       if(PcdAnticoll(UID)==MI_OK)                        //防冲撞
  46.       {
  47.         printf("Card Id is:");
  48.         Uart1_SendHexDisplay(UID[0]);
  49.         Uart1_SendHexDisplay(UID[1]);
  50.         Uart1_SendHexDisplay(UID[2]);
  51.         Uart1_SendHexDisplay(UID[3]);
  52.         printf("\r\n");                             //发送换行指令
  53.                         
  54.         LED0=1;
  55.         delay_ms(500);
  56.         LED0=0;
  57.         delay_ms(500);
  58.       }
  59.           else LED0=0;                                           ;
  60.   }
  61. }
  62. int main(void)
  63. {         
  64.         delay_init();                     //延时函数初始化          
  65.         NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  66.         uart_init(9600);                 //串口初始化为9600
  67.         SPI2_Init();
  68.         LED_Init();                             //LED端口初始化
  69.         KEY_Init();       
  70.        

  71.         delay_ms(50);
  72.         LED0=0;
  73.         PcdReset();//复位RC522读卡器
  74.         delay_ms(10);
  75.          
  76.         PcdReset();//复位RC522读卡器
  77.         delay_ms(10);
  78.          
  79.         PcdAntennaOff();                                                         
  80.         delay_ms(10);          
  81.   PcdAntennaOn();//开启天线发射
  82.         printf("RFID-MFRC522 TEST\r\nFindCard Starting ...\r\n");
  83.         while(1)
  84.         {       
  85.                 ReaderCard();
  86.     delay_ms(200);
  87.                 LED1=!LED1;
  88.                
  89.         }
  90. }



复制代码

所有资料51hei提供下载:
65520772STM32-RC522.rar (616.07 KB, 下载次数: 125)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:262629 发表于 2017-12-17 13:18 | 只看该作者
顶起。。。。。。。。
回复

使用道具 举报

板凳
ID:263025 发表于 2017-12-18 11:04 | 只看该作者
顶起,谢谢大佬
回复

使用道具 举报

地板
ID:375715 发表于 2019-11-20 15:44 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
ID:653672 发表于 2019-12-1 18:11 | 只看该作者
.谢谢分享
回复

使用道具 举报

6#
ID:708362 发表于 2020-6-26 11:28 | 只看该作者
多谢大佬,楼主太帅了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表