STM32实验2报告(word文档良心出品)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 MINI STM32按键控制LED灯实验
一、实验目的
1、掌握嵌入式程序设计流程。

2、熟悉STM32固件库的基本使用。

二、实验内容
1、编程使用I/O I I作为输入,控制板载的两个LED灯。

2、使用固件库编程。

三、实验设备
硬件:PC机一台
MINISTM32开发板一套
软件:RVMDKV3.8 一套
Windows XP 一套
实验步骤
1>设计工程,使用固件库来编程设置。

1.1.在这里我们建立一个文件夹为:STM32-Projects.
点击Keil的菜单:Project - >New Uvision Project ,然后将目录定位到刚才建立的文件夹
STM32-Projecst之在这个目录下面建立子文件夹shiyanl,然后定位到shiyanl目录下
面,我们的工程文件就都保存到shiyanl文件夹下面。

工程命爼为shiyanl,点击保存.
1・2、这里我们定位到STMicroelectronics卜面的STM32F103RB(针对我们的mini板子是这个型号。

1.3%弹出对话框u Copy STM32 Startup Code to project •••・”,询问是否添加启动代码

我们的工程中.这里我们选择“否S 因为我们使用的ST 固件库文件已经包含了启动文件。

pvision 卩巳q r

Copy STM32 Startup Code to Project Folder and Add File to Project ?
ICO
S(N)
1.4.接下来,我们在Template 工程目录下面,新建3个文件夹CORE, USER,
STM32F10x_FWLib 。

USER 用来放我们主函数文件main.c,以及其他包括 system_stm32fl0x.c
等等,CORE 用来存放心动文件等,STM32F10x_FWUb 文件夹顾名思 义用來存放ST 官方提
供的库函数源码文件.
1.5、•打开官方固件库包,定位到我们之前准备好的固件库包的目录。

STM32F10x_StdPeriph_Lib_V3・5・0\Libraries\STM32F10x_StdPeriph_Driver 卜•面,将目录卜
面的 srcjnc 文件夹copy 到我们刚才建立的STM32F10x_FWLib 文件夹下面。

■»・
・Ji ❷

•asm
«:
次小
上trc
M12/7/11411
201^/7/1 1441

1・6、我们将文件加入我们的工程中去。

右键点击Target 1,选择Manage Components
7
!>*•
•眄■
1.7、把将固件库包里面相关的启动文件复制到我们的工程目录CORE之下。

打开
官方固件库包,定位到目录。

STM32F10x_StdPeriph_Lib_V3. 5. 0\Libraries\CMSIS\CM3\CoreSupport 下面,将文件
core_cm3. c和文件core_cm3. h复制到CORE卜面去。

STM32F10x_StdPeriph_Lib_V3. 5. 0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\s
tartup\arm卜面,将里面所有的文件同样复制到CORE下面
1.8、定位到目录:
STM32F1 Ox_StdPeriph_Lib_V3. 5. 0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 将里面的三个文件stm32f 10x. hsystem_stm32f lOx. csystem_stm32f lOx. h,复制到我们的USER目录之下。

然后STM32F1 Ox_StdPeriph_Lib_V3. 5. 0\Project\STM32F10x_StdPeriph_Template 卜•面的 4 个文件main. c» stm32f 10x_conf. h. stm32f 10x_ir. c» stm32f 10x_it. h 制到USER 目录下面
1.9、Project Targets 一栏,我们将Target 名字修改为Template,然后在Groups 一栏删掉一个,建立三个Groups : USER, CORE, FWLIB.点击OK.可以看到我们的Target名字以及Groups情况。

1.10、往Group里面添加我们需要的文件。

右键点击点击Tempate.选择选择Manage Components.然后选择需要添加文件的Group,这里第一步我们选择FWLIB,然后点击右边的Add Files,定位到我们刚才建立的目录STM32F10x_FWLib/src下面,将里面所冇的文件选中(Ctrl+A),然后点击Add ,然后Close.
1.12、下而我们要告诉MDK,在哪些路径之下嗖索相应的文件。

回到工程主菜单,点
击廢术棒,出来一个菜单,然后点击c/c++选项.然后点击Include Paths 右边的按钮。

弹出一个添加path 的对话框,然后我们将图卜•面的3个目录添加进去。

记住,keil 只 会在一级目录查找,所以如果你的目录卜面还有子目录,记得path —定要定位到敲后一 级子目录。

然后点击0K.
1.13. 定位到 C/C++ 界面,然后复制 “STM32F10X_MD,USE_STDPERIPH_DRIVER” 到
Define 里面。

r M*M9C
r
厂 Ow eV 90 M CMT *
r Cmaner a” n r
r vy
G E C F —
• |ra4w»/Ia<«aaa«m| “4 |
7
1.11、用同样的方法,将Groups 定位到CORE 和USER 下面,添加需要的文件。

这 里
我们的 CORE F 面需要添加的文件为 core_cm3.c , startup_stm32fl0x_md.s , USER 目 录卜面需要添加的文件为main.c, stm32fl0x_it.c, system_stm32fl0x.c.这样我们需要添加 的文件己经添加到我们的工程中去了,最后点击0K,回到工程主界面
Hl
EDAmt$T ■孑玄a* *OST
$nw
Outt.STCftcavfR • r — row y
Folckr S«tup
1.14. 把编写好的主函数放在USER里。

1.15. 下面还需要尤置,让编译Z后能够生成hex文件。

冋样点击魔术棒, 进入配置菜单,选择0utput。

然后勾上下三个选项。

1.16、编译代码,可以看到生成了hex文件,这个文件我们用mcuisp下载
到mcu。

1.17. 编译结果
LOUpW ______________________________________________________________
vtaiSJfflOa^vf• •
r»32fXO*_12c.c.・・
»ui)2fl0a_Aw««・■・・・
_F«S.c.••
.j«<&ii*f :』・c ..
*xsi32riOa r«c・©・・・ ttmJ2flO«2■虹o・&・・・
ocwil&M raiUflOa^ciB.o...
MflPiXlM K»ZriO«:u••吠・•・・・
swMflOi wvsg.c..・
Frozen 2XX•: Ccd^4fl« JK>-Aao-;Ct EV-J:X-dax••:C9<
rrcaCLF. ar«atiM til•・・•
TXT.or* - 0 mor(a)# 0 B«nun«(«) •
2、编写代码,实现I/O编程及LED控制;include “led.h”
★include "delay.h"
#include "sys.h"
include ll key.h11
int main(void)
{
u8 t;
Systemlnit(); 〃系统时钟设置
delay_init(72); 〃延时初始化
NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
LED_lnit(); 〃初始化与LED连接的硬件接【1
KEYJnitf); 〃初始化与按键连接的破件接I I
while(l)
{
t=KEY_Scan();// 得到键值
if(t)
{
switch(t)
{
case 1:
LEDO=!LEDO;
break;
case 2:
LED1=!LED1;
break;
case 3:
LEDO=!LEDO;
LED1=!LED1;
break;
}
}else delay_ms(10);
3、实验现象:
按下同时控制两盏灯的亮灭。

按下就红灯亮,按下就红绿亮。

五、实验与总结
有了上次实验,这次试验相对来说难度没那么人,使用固件库的基本流程都己学会,町以说是比较熟悉了。

而由于借出过一次软件了,所以对软件也比较熟悉,操也作起来比较熟练,没有第一次那么陌生了,慢慢來总会有进步的。

对于这次试验,感觉没什么难度,可能足比较熟悉的原因吧,很快就可以做好了。

但是,在实验过程中却遇到了一个比较大的问题,就是卜载的时候老是检査不到通道, 试过很多种方法都没有成功,这就导致我们这组址后没有验收。

I片为这个原因我们首先检查配盘和代码,但是发现都没错。

我们求助很多同学,但最后都没右解决,后來快卜•课的时候不知道怎么搞得它竞然可以了。

我想应该是数据线的问题吧,或者是USB接II的问题,导致卜•载器一直检査不到板。

通过这次的实验,让我学会应该仔细做实验,做好每一步,争取不要给它出错的机会, 这样才能事半功倍。

相关文档
最新文档