STM32F407IGT6单片机RFID射频(RC522)模块实验KEIL软件DEMO工程源码,可做为你的人学习设计参考。
int main(void)
{
/* 复位所有外设,初始化Flash接口和系统滴答定时器 */
HAL_Init();
/* 配置系统时钟 */
SystemClock_Config();
/* 初始化串口并配置串口中断优先级 */
MX_DEBUG_USART_Init();
/* 初始化3.5寸TFT液晶模组,一般优先于调试串口初始化 */
BSP_LCD_Init();
LCD_Clear(0,0,LCD_DEFAULT_WIDTH,LCD_DEFAULT_HEIGTH,BLACK);
/* 开背光 */
LCD_BK_ON();
LCD_DispString_EN_CH(70,50,(uint8_t *)"YS-F4Pro开发板",BLACK,BLUE,USB_FONT_24);
printf("RC522初始化\n");
RC522_Init();
PcdReset();
M500PcdConfigISOType ( 'A' );/* 设置工作方式 */
printf("RC522初始化完成\n");
while ( 1 )
{
IC_test ();/* IC卡检测 */
}
}
/**
* 函数功能: 门禁测试函数
* 输入参数: 无
* 返 回 值: 无
* 说 明: 无
*/
void IC_test ( void )
{
char cStr [ 30 ];
unsigned char ucArray_ID [ 4 ]; /* 先后存放IC卡的类型和UID(IC卡序列号) */
uint8_t ucStatusReturn; /* 返回状态*/
while ( 1 )
{
/*寻卡*/
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 )
{
sprintf ( cStr, "The Card ID is: %02X%02X%02X%02X", ucArray_ID [ 0 ], ucArray_ID [ 1 ], ucArray_ID [ 2 ], ucArray_ID [ 3 ] );
printf ( "%s\r\n",cStr );
LCD_DispString_EN(10,200,cStr,BLACK,RED,USB_FONT_24);
}
}
}