我是靠谱客的博主 小巧小刺猬,最近开发中收集的这篇文章主要介绍实验一. RFID自动读卡实验实验目的实验环境实验内容实验步骤实验结果串口设置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实验一. RFID自动读卡实验

  • 实验目的
  • 实验环境
  • 实验内容
  • 实验步骤
    • 实验代码
      • 1) 初始化MFRC531
      • 2) 寻卡
    • 硬件连接
    • 编译、烧录并测试
  • 实验结果
  • 串口设置

实验目的

  • 了解RFID相关知识。
  • 掌握RFID模块自动识别IC卡工作原理。

实验环境

  • 软件:IAR SWSTM8 1.30。
  • 硬件:RFID射频模块,电子标签,ST-Link。

实验内容

  1. 熟悉实验箱的操作流程,认识RFID模块。
  2. 用 ST-LINK烧写、调试程序。
  3. 编程使用RFID模块,完成自动识别读取IC卡卡号功能。

实验步骤

实验代码

1) 初始化MFRC531

  • 若MFRC531_Init()==MI_OK,则蜂鸣声响200ms,并亮灯。
 if(MFRC531_Init() == MI_OK)
    {
        BEEP_On();
        delay_ms(200);
        BEEP_Off();
        LED_On();
    }
    else
    {
        BEEP_On();
        delay_ms(200);
        BEEP_Off();
        delay_ms(200);
        BEEP_On();
        delay_ms(200);
        BEEP_Off();
        LED_Off();
        while(1);
    }

2) 寻卡

  • 若未寻到卡,则tx_buf的5至12位皆为0;若寻到卡,则tx_buf的第5位置为0x01,7至10位用于保存卡序列号,并发送数据帧。
//enableInterrupts();

while(1)
{
	//寻卡
	if(MI_OK != PcdRequest(req_code[0],atq))
	{
		tx_buf[5] = 0;
		tx_buf[6] = 0;
		tx_buf[7] = 0;
		tx_buf[8] = 0;
		tx_buf[9] = 0;
		tx_buf[10] = 0;
		tx_buf[11] = 0;
		tx_buf[12] = 0;
		delay_ms(400);
	}
	else
	{
		//防冲撞
		if(MI_OK == PcdAnticoll(g_cSNR))
		{
			tx_buf[5] = 0x01;
			tx_buf[6] = 0;
			tx_buf[7] = g_cSNR[0];	//卡序列号
			tx_buf[8] = g_cSNR[1];
			tx_buf[9] = g_cSNR[2];
			tx_buf[10] = g_cSNR[3];
			tx_buf[11] = 0;
			tx_buf[12] = 0;
			BEEP_On();
			delay_ms(200);
			BEEP_Off();
			delay_ms(200);
		}
	}
	PcdHalt();

	//发送数据帧
	UART2_SendString(tx_buf, 14);
	LED_Toggle();
}

硬件连接

  1. 把RFID模块插到实验箱的主板上的串口
  2. 把ST-Link配合JTAG仿真器插到标有ST-Link标志的串口上
  3. 把仿真器一端的USB线插到PC机的USB端口,通过主板上的“加”“减”按键调整要实验的RFID模块(会有黄色LED灯提示),硬件连接完毕。

编译、烧录并测试

  1. 我们用IAR SWSTM8 1.30软件,打开…RFID_读卡号实验ProjectMFRC531_ATM8.eww。
  2. 工程编译:点击“Project”->“Rebuild All”。
  3. 点击“Rebuild All”进行编译。
  4. 将卡片放在烧录板上,把程序烧到模块里,点击“ ”中间的Download and Debug进行烧录,完成后听到蜂鸣器响一声。
  5. 关闭上述已打开程序,打开串口测试软件,将传感器模块连接到串口转USB模块上,将USB2UART模块的USB线连接到PC机的USB端口,然后打开串口工具,配置好串口,波特率115200,8个数据位,一个停止位,无校验位,串口开始工作。

实验结果

  • 无卡时串口返回:EE CC FE 01 01 00 00 00 00 00 00 00 00 FF
  • 有卡时串口返回:EE CC FE 01 01 01 00 8D D2 0B 51 00 00 FF
    串口返回内容截图
  • 对于返回内容,前五组(两位为一组,从零开始编号)是固定的,为EE CC FE 01 01;第五组表示是否寻到卡片,若未寻到,则为00,若寻到,则为01;第七到第十组为卡序列号,若未寻到卡,则卡序列号为00 00 00 00,若寻到卡,则输出卡序列号,这里是8D D2 0B 51;最后一组为FF,表示结束;其余组为00。

此图为示例,卡序列号与上面不同

串口设置

  • 将板上的串口用串口线与电脑主机相连,若电脑上没有串口,可以使用串口转usb接口与电脑相连,此时,如果电脑没有激活过这样的端口,则需要激活端口,并记录下该端口号,在串口软件的串口设置中,端口号选择对应的COM号。
  • 具体的端口激活可参见网上教程。

最后

以上就是小巧小刺猬为你收集整理的实验一. RFID自动读卡实验实验目的实验环境实验内容实验步骤实验结果串口设置的全部内容,希望文章能够帮你解决实验一. RFID自动读卡实验实验目的实验环境实验内容实验步骤实验结果串口设置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部