RFID实验箱实验指导书整合版

更新时间:2023-04-30 04:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

广州飞瑞敖电子科技有限公司

R

F

I

D

实验指导书

广州飞瑞敖电子科技有限公司

1

2

注意:以*号开头实验为选作实验,如课时紧张,可跳过该实验它对综合实验的开展不会产生影响。

STM32F103VE 单片机实验 (3)

实验一 开发环境的搭建及硬件测试实验 (4)

实验二 STM32工程建立 (8)

实验三 串口通讯实验 (28)

实验四 时钟中断 (33)

实验五 外部中断 (41)

*实验六 ADC 采集 (45)

*实验七 SPI-Flash 读写 (52)

实验八 LCD 显示 (59)

实验九 触摸屏 (68)

实验十 UC/OSII LED 闪烁 (74)

实验十一 UC/OSII 任务挂起、恢复、删除 (81)

实验十二 UCGUI 演示 (86)

实验十三 基于UCGUI 的LED 闪烁 (94)

实验十四 数码管 ......................................................................................................................... 99 RFID 实验...................................................................................................................................... 103 实验一 LF 低频RFID 实验 .......................................................................................................... 103 实验二 HF 高频RFID 通信协议 .................................................................................................. 113 实验三 UHF 特高频RFID 实验 .................................................................................................... 126 实验四 2.4G 有源RFID 低功耗实验 .......................................................................................... 144 实验五 HF 高频RFID 应用 .......................................................................................................... 153 实验六 2.4G 人员定位实验 ....................................................................................................... 157 实验七 Wi-Fi 模块的使用 . (161)

3

STM32F103VE 单片机实验

写在最前面-为什么要学习STM32单片机?

当老师和学生拿到该实验指导书的时候,难免会有这样的疑问,这个实验箱是RFID 实验箱,我应该学习RFID 的知识才对,为什么学习STM32单片机呢? 对于这个问题的回答首先要从该款实验箱的设计初衷说起。飞瑞敖电子科技有限公司的IOT-L02-03型RFID 实验箱的设计初衷和教学重点是放在RFID 技术的应用而非工作原理上。STM32单片机做为实验箱的核心MCU ,通过UART 接口同时与四种RFID 模块相连(当然了,同一时间内只会和一个模块形成通路,具体和哪个模块形成通路则是通过由三个二位选择开关来控制的),与此同时,STM32通过GPIO 接口连接了丰富的外围设备如LED 流水灯、数码管、液晶显示屏、蜂鸣器等。有了STM32单片机和这些丰富的外围硬件,我们就可以模拟出来丰富的RFID 具体应用了,比如说使用高频RFID 模块、数码管、矩阵键盘,我们可以模拟出公交车收费系统,使用特高频RFID 模块和液晶屏,我们可以模拟出超市里面使用的电子价签系统,使用2.4G 有源RFID 模块和蜂鸣器,我们可以实现基于

2.4G 人员定位系统等等。但是在完成这些综合应用设计之前,还是要打好基础,学会基本功,也就是要学会STM32单片机是如何控制这些外围硬件以及如何和各个RFID 模块通信的了,这些就是接下来实验指导书中将介绍到的各个实验内容了。

至于RFID 原理部分,该款实验箱并不涉及。笔者认为,这就好比学习C 语言的时候,并不需要去学习GCC (或其他)编译器的原理是一个道理。RFID 原理部分更适合于射频和电子工程专业的学生学习,而对于物联网工程相关专业的学生应该将有限的课时和精力放在了解和学习不同RFID 模块的功能和特点,控制和通信方式以及应用设计上,从而在工作时,可以根据根据具体的项目需要,选择和设计出来最佳的RFID 应用方案。

以上所有仅代表该实验指导书笔者个人观点,仁者见仁智者见智。最重要的是让学生通过现有的设备学习到最多的东西,那么我们现在就开始吧。

4

实验一 开发环境的搭建及硬件测试实验

一、实验目的

1.1 Keil 开发环境的安装

1.2 掌握Keil 开发环境的使用

1.3 掌握STM32单片机固件的烧写方式

二、实验设备

硬件:RFID 实验箱套件,电脑等。

软件:Keil

三、实验原理

本实验箱使用基于Cortex-M3体系的STM32F103VET6单片机作为主控CPU ,运行相应的程序,它通过GPIO 可以控制实验箱上的其它组件(数码管,矩阵键盘,LED 流水灯、LCD 液晶屏等)。STM32F103VET6单片机有两路UART 通信接口,其中UART1经由MAX232电平转换芯片与实验箱上的UART-STM32 DB9串口相连负责和上位机进行通信。而UART2与实验箱上的SWICH 链路选择芯片组相连,通过PD12和PD13两个管脚进行链路选择,并最终和相对应的RFID 模块进行通信。更详细的原理图请参考配套光盘\附件\实验箱原理图 目录下的文档。

本实验的目的是熟悉和学习Keil 开发环境,下载相应的程序到STM32F103VET6上,并对实验箱上的硬件进行检测。在之后的实验中,将会详细的讲解STM32F103VET6单片机是如何控制各个组件并且如何和不同的RFID 模块进行通信的。

四、实验步骤

4.1 安装\光盘\应用程序\JLINK 驱动安装下的JLink 驱动。安装完成后,使用实验箱内的Jlink 仿真器将PC 机的USB 接口和RFID 实验箱上液晶屏下方的20pin JTAG 接口相连,如果PC 能够检测到JLink 则驱动安装成功(在设备管理器中可以看到JLINK 的提示如图1.0所示)否则请重新安装驱动。

5

图1.0

4.2 安装\光盘\应用程序\STM32芯片开发环境下的MDK414.exe 软件(即KeilVersion4)。

4.3 打开keiluVision4开发环境(注:请在网上搜索破解方法),界面如图1.1。

图1.1 开发环境界面

4.4 打开测试工程,路径为\光盘\源代码\测试程序\ APP 下的.uvproj 工程文件。如图 1.2 及1.3。

6

图 1.2 打开工程

图1.3 打开工程

4.5 编译源文件,生成hex 文件,如图 1.4。

7

图 1.4 编译工程

4.6 烧写可执行文件,如图1.5。

图 1.5 烧写可执行文件。

图1.6程序烧写成功

烧写完成后可观察实验箱。

4.7 本次程序使用了实验箱硬件测试程序,请根据\光盘\RFID 实验箱整机测试及推广演示指导书.doc 来测试RFID 实验箱的各个硬件是否正常工作。

8

实验二 STM32工程建立

一、 实验目的

1.1 熟悉Keil4开发环境的使用

1.2 掌握STM32工程建立

1.3 了解STM32官方库

1.4 了解STM32 通用I/O 端口的使用

二、 实验设备

硬件:RFID 实验箱,电脑等。

软件:Keil4

三、 实验原理

3.1 GIPO 功能描述

每个GPI/O 端口有两个32 位配置寄存器(GPIOx_CRL ,GPIOx_CRH),两个32 位数据寄存器(GPIOx_IDR ,GPIOx_ODR),一个32 位置位/复位寄存器 (GPIOx_BSRR),一个16 位复位寄存器(GPIOx_BRR)和一个32 位锁定寄存器 (GPIOx_LCKR)。

GPIO 端口的每个位可以有软件分别配置成多种模式。

● 输入浮空

● 输入上拉

● 输入下拉

● 模拟输入

● 开漏输出

● 推挽输出

● 推挽复用

● 开漏服用

每个端口位可以自由编程。具体的寄存器的配置及使用请查看文件:STM32中文参考手册_v10.pdf

3.2 LED 灯硬件原理图

图 1.1 LED 原理图

使用MC74HC573ADWR2芯片,相关参数请查阅相关文件。LE 需要拉高使能芯

9

片工作。LED1~8 分别对应了PE5~PE2,与PC3~PC0,将相应的引脚拉高点亮LED 灯。

3.3 STM32库

TM32F10x 标准外设库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例。每一个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件开发都由一个通用API 驱动,API 对该驱动程序的结构,函数和参数名称都进行了标准化。所有的驱动源码都符合ANSI-C 。ST 公司已经把驱动源代码文档化。

此后的例程中我们将会频繁的使用到STM32库中的API 进行开发。

3.4 SM32 引脚初始化

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOC , ENABLE); 初始化端口的时钟频率。

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 设置为输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 设置速率

GPIO_Init(GPIOE, &GPIO_InitStructure); 初始化端口

具体请参考例程源码。

四、 实验步骤

4.1 打开KEIL4开发环境并新建工程,如图1.2所示。

首先需要在电脑的某个路径下创建工程的根文件夹(如E:\源代码\LED ),笔者创建了LED 文件夹用于工程的根目录。

打开KEIL4环境,点击Project -> New uVision project,如图1.2示。

图 1.2

点击后弹出如图1.3所示的提示框。

10

图1.3

在这里选择之前创建的工程的根文件夹,笔者这里是/源代码/LED 文件夹。输入工程的名称(自定),点击保存后弹出如图1.4所示的内容。

11

图1.4

在这里就需要选择单片机的类型,本实验箱的单片机是STM32F103VE 单片机。首选选择STMicroelectronics 后会打开设备的列表。

接下来找到STM32F103VE 并选择,点击OK 。

12

1.5

图1.6

这里会提示是否需要添加启动源文件,选择否。到这里工程已经初步建好。工程的构造如图

1.7所示,是最初始的状态,之后我们需要添加一些目录及源文件。

图1.7

4.2 构造工程目录及源文件

点击图1.8中标记的按钮,进入工程目录构造的对话框。

图1.8

这里笔者将初始的Source Group 删除了,并且构建了5个目录。user 目录内可以放置

13 主函数等源文件。startup 放置STM32库中提供的个启动文件,他是使用汇编语言编写的。FWLIB 放置STM32库中的外设的驱动文件。HARDWARE 内可以放置一些硬件的驱动程序如LED 灯或LCD 屏幕驱动等。CMSIS 放置STM32提供的系统API 源文件。(注:这样的目录结构不是固定的,只是一个例子,使用者可以根据自己的习惯来建立工程目录)。

图1.9

构建完成后如图1.10所示。

图1.10

在KEIL4中构建的目录并不会在实际的工程目录下创建文件夹,它只是为了在编写代

14

码时阅读方便而创建的。那么我们需要在实际的路径下创建目录,名称最好与工程中一致,以免发生混淆如图1.11所示。

图1.11

4.3 拷贝STM32库文件

1) 首先解压库文件,路径/光盘/附件/STM32库/ STM32 官方库3.5版本.rar

2) 将

\stm32f10x_stdperiph_lib35\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\De viceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s 文件拷贝到工程目录下的startup 文件夹。

3) 将

\stm32f10x_stdperiph_lib35\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\De viceSupport\ST\下的stm32f10x.h 、system_stm32f10x.c 、system_stm32f10x.h 三个文件拷贝到工程目录下的CMSIS 文件夹下。

4) 将

\stm32f10x_stdperiph_lib35\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdP eriph_Examples\ADC\3ADCs_DMA 下的stm32f10x_conf.h 拷贝到工程目录下的CMSIS 文件夹下。

5) 将

\stm32f10x_stdperiph_lib35\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_Std Periph_Driver 下的inc 与 src 文件夹拷贝到工程目录下的FWLIB 文件夹下。

到这里基本的文件已经拷贝到工程目录下了。

4.4 将文件添加到KEIL4工程中

上一步的工作仅仅把相关的源文件拷贝到了工程目录下,我们还需要在KEIL4中将他们添加到工程中来。

1) 首先我们添加startup_stm32f10x_hd.s 到startup 目录下。在project 窗口下右键startup 点

15 击图1.12标记的选项。

1.12

如1.13

16

图1.14

2) 添加system_stm32f10x.c 文件到工程的CMSIS 下

图1.15

3) 添加stm32f10x_gpio.c 及stm32f10x_rcc.c 到FWLIB 目录下

17

图1.16

4) 到这里本此实验所需的库文件已经添加完毕,源文件具体的功能在这里不详述后续实验

都会使用到,读者也可以参考相关资料来熟悉STM32的库。(注:.h 头文件不用添加,编译时自动关联),结构如图所示

图1.17

4.5 编写LED 灯闪烁程序

1) 新建文件,点击图1.18所示的选项,新建文件如图1.19。

图1.18

18

图1.19

2) 保存源文件

点击图1.20所示选项,保存文件

1.20

19

图1.21

这里笔者将他命名为main.c,保存在工程的user 文件夹下。

3) 添加文件到工程的user 目录下

将上一步新建的文件添加工程中。

图 1.22

20

图1.23

目录结构如图1.23所示。

4) 编写源码

本例程不将重点放在编码之上,说以建议使用者直接在我们提供的工程(/光盘/源代码/LED/user )中将main.c 的源码拷贝到自己创建的工程中。

21

图1.24

到这里,代码方面的工作都已经完成。

4.6 配置工程选项

1) 点击图1.25示的选项,进入工程配置界面。

图1.25

点击Output 选项卡,勾选Create HEX File 。

本文来源:https://www.bwwdw.com/article/p1ye.html

Top