嵌入式实验一

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

keil4的安装

一、实验目的

了解keil4软件安装与调试

二、实验内容

安装keil4软件并成功注册

三、实验仪器、设备

计算机、keil4软件

四、实验步骤

1.首先打开keil4破解.rar并解压文件,得到MDK400_mcu123.exe(安装文件)和KEIL_Lic.exe(破解文件)。

2.打开安装文件,根据提示进行下一步操作,一直到安装完成。

Keil4的安装步骤1

Keil4的安装步骤2

Keil4安装完成

3.点击finish后,打开桌面上的Keil uVision4,进入MDK。

MDK界面

点菜单file——license management,会出现以下界面。

注册管理界面

复制图片中的CID码,每个计算机的CID不同,所以必须在本机安装后才能注册。我们再打

开一起被解压出来的keil4破解文件KEIL_Lic.exe。将CID码输入,并在Target中选择ARM (选择其他的选项也可以注册,但是遇到大程序时会出现无法编译的情况)。然后点击generate生成注册码,将注册码填入LIC中,点击add lic,显示*** LIC Added Sucessfully ***时,注册成功。,然后重新启动MDK。即完成破解。

Keil4的破解

实验一闪烁灯与keil4环境下STM32的设置

一、实验目的

熟悉在keil4环境下的STM32的参数设置

完成闪烁灯实验任务

二、实验内容

建立新的工程文件,并根据STM32的设置需求进行配置,配置完成后能顺利执行闪烁灯程序

三、实验仪器、设备

计算机、keil4软件

四、实验步骤

1.首先建立固件库文件夹,将其他例子中的固件库复制到我们所需要的文件夹中(文件名可更改)。

固件库文件夹

CM3:放置系统头文件

User:放置用户工程文件及函数

FWLIB:stm32的函数库

List:编译后产生的各种文件

startup:启动代码文件

obj:放置编译后生成的可执行HEX等文件

2.新建一个keil 工程文件在目标文件夹中,Project——new uVision project,指定一个工程文件存放地点,自定义工程文件名字后,选择保存。

新建工程文件

点击保存后进入芯片选择,我们选择的是STMicroelectronics下的STM32F103VE芯片

芯片选择

点击OK,在弹出的提示加载startup文件到工程中的选择中选择否(N)

进入新建工程的主界面,接下来,我们需要对编译环境进行定义

点击按钮,对编译文件进行添加

首先添加名称为ARM的启动文件,将startup_stm32f10x_hd.s添加进去。

ASM--startup_stm32f10x_hd.s 由于我们采用的是STM32F103大存储器芯片,因此采用STM32标准库自带的大存储器芯片启动代码,这个文件已经配置好了初始状态,以及中断向量表。可以直接在工程里使用,如果你在以后的应用中采用了中存储器或者小存储器STM32芯片,可以将启动代码换为startup_stm32f10x_md.s 或者startup_stm32f10x_ld.s。

然后添加名称为USR的用户代码,将闪烁灯的主函数main.c添加进去。

USER—main.c 例程的主函数。

RCC_Configuration() 完成对系统时钟的设置,例程中通过系统时钟设置函数,外接晶振采用8Mhz,经过片内频率合成,9倍频,设置为72MHz的时钟。

LED_Config() 对控制3个LED指示灯的IO口进行了初始化,将3个端口配置为推挽上拉输出,口线速度为50Mhz。

在配置某个口线时,首先应对它所在的端口的时钟进行使能。否则无法配置成功,由于3个控制口用到了端口B和端口D,因此要对这两个端口的时钟进行使能,RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOD ,ENABLE);

程序中对各状态LED进行了预定义:

#define LED1_ON GPIO_SetBits(GPIOB, GPIO_Pin_5);

#define LED1_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_5);

#define LED2_ON GPIO_SetBits(GPIOD, GPIO_Pin_6);

#define LED2_OFF GPIO_ResetBits(GPIOD, GPIO_Pin_6);

define LED3_ON GPIO_SetBits(GPIOD, GPIO_Pin_3);

#define LED3_OFF GPIO_ResetBits(GPIOD, GPIO_Pin_3);

GPIO_SetBits(x,x); GPIO_ResetBits(x,x); 是标准库stm32f10x_gpio.c中的函数,用于对某口线置位或复位。

初始化完成后,进入大循环,执行功能。

while (1){

LED1_ON; LED2_OFF; LED3_OFF; //V6 亮 V7,V8灭

Delay(0xAFFFF);

LED1_OFF; LED2_ON; LED3_OFF; //V7 亮 V6,V8灭

Delay(0xAFFFF);

LED1_OFF; LED2_OFF; LED3_ON; //V8 亮 V6,V7灭

Delay(0xAFFFF);

}

再添加名称为FWlib的官方库文件,由于在闪烁灯实验中用到的是与时钟有关系的外设时钟官方库stm32f10x_rcc.c和外设的GPIO设置有关系的函数stm32f10x_gpio.c,所以在此我们只添加这两个官方库文件。

FWLIB--stm32f10x_gpio.c ST公司的标准库,包含了关于对通用IO口设置的函数。

stm32f10x_rcc.c ST公司的标准库,包含了关于对系统时钟设置的函数。

相关文档
最新文档