找回密码
 立即注册

QQ登录

只需一步,快速开始

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

野火stm32 RFID-RC522识别卡片例程

[复制链接]
跳转到指定楼层
楼主
#include "stm32f10x.h"
#include "bsp_SysTick.h"
#include "bsp_usart1.h"
#include "rc522_config.h"
#include "rc522_function.h"
#include <stdbool.h>
#include "bsp_lcd.h"
#include "./font/fonts.h"


/**
  * @brief  测试函数
  * @param  无
  * @retval 无
  */
void IC_test ( void )
{
        //char cStr [ 30 ];
  uint8_t ucArray_ID [ 4 ];   /*先后存放IC卡的类型和UID(IC卡序列号)*/                                                                                          
        uint8_t ucStatusReturn;     /*返回状态 */
        char asc_16[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  static uint8_t ucLineCount = 0;
        
  while ( 1 )                                                                              
  { //printf ( "ready");
    /*寻卡*/
                if ( ( ucStatusReturn = PcdRequest ( PICC_REQALL, ucArray_ID ) ) != MI_OK )
                                
       /*若失败再次寻卡*/
                        ucStatusReturn = PcdRequest ( PICC_REQALL, ucArray_ID );                                                               

                if ( ucStatusReturn == MI_OK  )
                {
      /*防冲撞(当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作)*/
                        if ( PcdAnticoll ( ucArray_ID ) == MI_OK )                                                                  
                        {
                                printf ("The Card ID is: %c\n\n",
                  asc_16[ucArray_ID [ 0 ]/16]

                   );
                                                               
                                //printf ( "%s\r\n",cStr );                        
                                
                                //ILI9341_DispStringLine_EN(LINE(ucLineCount), cStr );
                                
                                ucLineCount ++;
                                
                                if ( ucLineCount == 10 ) ucLineCount = 0;
                                                        
                        }               
                }        
  }               
}


/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */
int main ( void )
{
  /*滴答时钟初始化*/
        SysTick_Init ();   
        
  /*USART1 配置模式为 115200 8-N-1,中断接收 */
        USART1_Config ();  
        
  /*RC522模块所需外设的初始化配置*/
        RC522_Init ();     
        
  /*LCD 初始化*/
        //LCD_Init ();        
        
        //ILI9341_GramScan ( 6 );
        printf ( "WF-RC522 Test\n" );
        
        //LCD_SetFont(&Font8x16);
        //LCD_SetColors(RED,BLACK);

  /* 清屏,显示全黑 */
  //ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);        
        //ILI9341_DispStringLine_EN(LINE(13),
         printf("Please put the IC card on WF-RC522 antenna area ..." );
        
        //LCD_SetTextColor(BLUE);
        
        PcdReset ();

  /*设置工作方式*/
        M500PcdConfigISOType ( 'A' );
        
        
  while ( 1 )
  {
    /*IC卡检测        */
    IC_test ();
  }        
}



/****************************END OF FILE**********************/

项目.png (4.48 KB, 下载次数: 47)

项目.png

F103-MINI开发板配套例程.7z

211.13 KB, 下载次数: 51, 下载积分: 黑币 -5

下载

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

使用道具 举报

沙发
ID:91165 发表于 2020-4-19 15:08 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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