【开发工具】STM32开发环境使用Keil MDK 同时进行51开发

IDE下载:https://download.csdn.net/download/liudongdong19/10579617

固体库下载:http://www.keil.com/dd2/Pack/#/eula-container

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries.html?querycriteria=productId=LN1939

https://blog.csdn.net/column/details/13472.html

http://www.cnblogs.com/firege/p/5748457.html

http://www.cnblogs.com/firege/p/5748674.html  建立工程

配置51环境·:

之前参考了这表博客:https://blog.csdn.net/Initdev/article/details/80704205

  

开发环境的搭建:

STM32开发环境使用Keil MDK进行,那怎么使用MDK建立一个工程呢?

MDK下载

首先应该下载到MDK官网:http://www.keil.com/arm/mdk.asp 下载最新版的MDK安装包,进入MDK官网,点击download按钮
MDK官网下载地址

跳转到下载界面,填入必要的信息:
MDK下载信息输入

然后在页面下方点击提交按钮:
提交按钮

如果填写的信息,符合要求,在本页面将会显示下载连接:
MDK下载链接

点击下载MDK(可以看到香农这里的MDK版本是MDK520,大概有567M的样子)

MDK安装

下载完成之后点击安装:
软件安装界面1
软件安装界面2
选择安装目录,根据自己的需求定义,
软件安装界面3
随便填一些用户信息…
软件安装界面4
安装程序从当前开始安装,等待安装完成.
软件安装界面5
如果提示安装驱动,如果需要使用到ULink进行程序的烧录调试,则选择是,如果不需要选择否就可以了。
软件安装界面6
MDK安装完成界面如下所示,点击finnish:
软件安装界面7
弹出如下界面,取消选择show the dialog at startup,点击OK
软件安装界面8
此时在界面左方的树形列表中,ALL Devices列表下,只有一个ARM选项,等待程序刷新获取所有的设备列表:
软件安装界面9
展开设备STMicroelectronics选项,将会看到所有类型的STM32系列设备,根据需要选择对应系列的设备,笔者这里选择F103系列,然后可以在右边的packs下看到对应的驱动包,点击Install下载安装当前还未下载安装的驱动包,直到所有的选项驱动包安装完成,右边所有按钮变成灰色,关闭界面,此时在桌面上可以看到Keil MDK的快捷方式。
软件安装界面10

MDK破解:::一次用注册机产生密码,在license里可能不可以激活。第一次运行一定要记住,要以管理员的身份运行mdk。以管理员的身份运行,注册成功。

接下来我们就是要进行软件的破解了,在网上下载一个破解软件KEIL_Lic(网上有很多),以管理员身份打开我们刚刚装好的MDK软件,File–>License Management
注册方式

复制右边CID编辑框中的字符串,然后打开下载好的KeiL_Lic
这里写图片描述
将刚刚复制的CID字符串粘贴到Keil_Lic的CID编辑框中,Target选择ARM,点击Generate按钮会在编辑框中生成注册码,我们将该注册码复制,并粘贴到License Management中的New License ID Code(LIC)中点击Add LIC,在下方的编辑框中提示添加成功,表示软件破解成功。
Keil_Lic界面

MDK 建立工程

关闭Keil_Lic和License Management,此时我们已经完成了开发环境的搭建以及破解,

如何建立STM32工程

新建工程

方式一:

现在我们开始建立STM32工程,点击打开我们刚刚安装的Keil MDK软件,点击菜单栏Project选择New uVision Project
准备开始建立工程
弹出对话框,选择存放工程的目录,并且在输入框内要建的工程名(指定工程名,不带后缀),这里我我输入Test,点击保存按钮将会弹出设备选择界面。
指定工程名

选择主控

在此界面选择要使用的STM32主控型号,笔者用的是STM32F103C8T6,就在STMiroelectronics中选择STM32F1 Series ,接着选择STM32F103,展开就可以看到我使用的STM32F103C8T6,点击选择,会在界面较靠上位置的Device:显示到我们选择的设备型号,笔者附上的图片可以清晰的看到STM32F103C8字样,点击OK按钮,确认选择。
选择设备

加载外设驱动

确认好要使用的设备后,会弹出Manage Run-Time Environment界面,这里需要配置我们使用STM32程序开发,需要用到的一些STM32外设功能,首先勾选几个最基本的选项,展开分支CMSIS勾选CORE和分支Device勾选Startup和GPIO,然后展开分支StdPeriph Driver在该分支下选择需要使用到的STM32外设,这里笔者以最常使用到的外设GPIO和USART为例子。
设备环境

当我们选择了GPIO和USART后,在左下角的Validation Output会出现黄色的感叹号,提示是需要一些加载RCC驱动和Framework我们在列表中勾选上就好了,如果还有感叹号,直接双击列表上对应的第三级选项,可以在上方驱动列表中直接找到所需的设备驱动,勾选上就好,选择完成之后,点击OK,便会在指定目录下创建工程了。
设备外设选择

例如stm32f103c8t6选择:

新建文件

我们可以在Project栏中看到我们创建好的工程目录,要编写STM32代码,我们需要新建一个文件,可以直接点击菜单栏File 选择New 或者 点击菜单栏File下类似白纸的图标(应该是File下第一个图标)或者直接按下快捷键CTRL + N便可以新建一个空白文档,默认该文档是在我们的编程区打开的。
新建文件
我们新建完文件之后需要将文件保存到本地文件中,我们点击菜单栏File 选择Save as或者 点击菜单栏File下保存图标(应该是File下第三个图标)或者直接按下快捷键CTRL + S
保存文件
接下来,我们需要选择保存文件路径,这里直接选择工程目录即可(如果不存放在工程目录下,需要在Options for Target 面板上选择C/C++选项卡,在Include Paths中将选择好的目录添加进去),接下来我们需要修改文件名,这里我更改为main.c(一定要带后缀)点击保存按钮,那么在我们工程目录下便会生成main.c文件。
保存路径选择

测试代码

虽然我们虽然新建并保存了可编写代码的文件,但是我们的工程目录下并没有这个文件,所以最后一步,我们需要将刚刚新建的文件添加到工程中去。右键Source Group1选择Add Existing Files to Group “Source Group1”,在工程目录下选择我们刚刚新建的main.c文件。
添加文件到工程中去
然后在双击main.c文件在其中添加测试代码:

#include "stm32f10x.h"
int main(void){
    return 0;
}

编写完成后,点击编译可以看到Build Output可以看到0 Error,0 Warning表示编译成功
这里写图片描述

另外一种·做法:

5.搭建工程环境框架

a.打开官方固件库包,定位到我们之前准备好的固件库包的目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\STM32F4xx_StdPeriph_Driver 下面,将目录下面的 src,inc 文件夹 copy 到我们刚才建立的 GECLIB文件夹下面。

b.打开官方固件库包,定位到目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 下面,将文件 startup_stm32f40_41xxx.s (启动文件)复制到 CORE 目录下面。

c.然后定位到目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Includ , 将 里 面 的 四 个 头 文 件 :core_cm4.h 、core_cm4_simd.h 、core_cmFunc.h 以及 core_cmInstr.h 同样复制到 CORE 目录下面。此时CORE的文件应有
这里写图片描述

d. 接下来我们要复制工程模板需要的一些其他头文件和源文件到我们工程。 首先定位到目录:
STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include 将里面的 2 个头文件 stm32f4xx.h 和 system_stm32f4xx.h 复制到 USER 目录之下。这两个头文件是STM32F4 工程非常关键的两个头文件。

e.然后进入目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates ,将 目 录 下 面 的 6个 文 件 main.c ,main.h, stm32f4xx_conf.h , stm32f4xx_it.c , stm32f4xx_it.h ,system_stm32f4xx.c 复制到 USER 目录下面
4

完成以上步骤后,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们需要把这些文件加入我们的工程中去。点击这里写图片描述进入Manage Project Items
这里写图片描述

Project Targets一栏, 我们将Target名字修改为Template,然后在Groups一栏删掉一个SourceGroup1,建立三个 Groups:USER,CORE,LIB。然后点击 OK,可以看到我们的 Target名字以及 Groups 情况如下图:
7

接上一步,添加需要的文件选择 GECLIB,然后点击右边的 Add Files,定位到我们刚才建立的目录\LIB\src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close.可以看到 Files 列表下面包含我们添加的文件。
8

提示两点:
1.对于添加的文件说明:例若只用到GPIO的配置,可以只选择stm32f4xx_gpio.c这样可以减少工程的代码量,提高编译的速度。
2.有个文件 stm32f4xx_fmc.c 比较特殊。这个文件STM32F42 和 STM32F43 系列才用到,所以我们这里要把它删掉(是 注意是 stm32f4xx_fmc.c 要删掉,不要删掉 stm32f4xx_fsmc.c) 。

添加完成后,我们要在 MDK 里面设置头文件存放路径。也就是告诉 MDK 到那些目录下面去寻找包含了的头文件。这一步骤非常重要。 如果没有设置头文件路径,那么工程会出现报错头文件路径找不到。
1.进入设置界面:

9

2.这里我们需要添加的头文件路径包括:\CORE, \USER\以及\LIB\inc(添加工程中所有含有.h文件的路径)。
10

3.STM32F40 系列的工程,还需要添加一个全局宏定义标识符。添加方法是点击
魔术棒之后,进入 C/C++选项卡,然后在 Define 输入框连输入:STM32F40_41xxx,USE_STDPERIPH_DRIVER。注意这里是两个标识符 STM32F40_41xxxUSE_STDPERIPH_DRIVER, 他们之间是用英文的逗号隔开的,请大家注意。
11

4.在做编译工程之前我们首先要选择编译中间文件编译后存放目录。方法是点击魔术棒 ,然后选择“Output”选项下面的“Select folder for objects…”,接着选择目录为我们上面的 新建的 OBJ 目录。,最后在OBJ目录下就可看到我们需要的程序.hex文件了。

5.编译刚才新建的工程


这里写图片描述

程序烧录:

STM32烧录程序目前笔者知道的有三种:JLink ,Ulink和串口烧录,使用工具分别为:JLink,ULink以及USB转TTL线。

ULink 烧录程序

在安装MDK过程中,会有提示是否安装驱动,该驱动就为ULink驱动,如果选择是就不需要再安装驱动了,否则就需要自己手动下载驱动并安装,驱动安装完毕之后我们需要告诉我们的MDK我们使用的是什么烧录工具,右键Target目录选择Options for Target…..,在弹出的Options for target 选项卡中选择Debug选项,在其右上方的下拉框中选择ULink/ME Cortex Debugger 即是选择了ULink进行程序烧录。
这里需要注意的是ULink接上电脑之后不一定能被安装的MDK正确识别,我们点击下拉框右边的Setting按钮将会弹出Cortex-M Target Driver Setup界面,在该界面下,如果在JTAG Device Chain区域显示No ULink Device Found 或者就是一片空白都表示我们的MDK没有识别到你已经接到电脑上的ULink,此时就需要你查找一下ULink端的原因了。

JLink 烧录程序

JLink驱动并没有集成在MDK安装程序中所以一定需要我们手动下载Jlink驱动并安装,驱动安装完毕之后我们需要告诉我们的MDK我们使用的是什么烧录工具,右键Target目录选择Options for Target…..,在弹出的Options for target 选项卡中选择Debug选项,在其右上方的下拉框中选择JLink/J-TRACE Cortex 即是选择了JLink进行程序烧录。
同样的,需要注意的是JLink接上电脑之后不一定能被安装的MDK正确识别,我们点击下拉框右边的Setting按钮将会弹出Cortex JLink/JTrace Target Driver Setup界面,在该界面下,如果在JTAG Device Chain区域显示Cannot redad JLink version number 或者就是一片空白都表示我们的MDK没有识别到你已经接到电脑上的JLink,如果右边J-Link / J-Trace Adaper下方的ort下拉框可选,选择成为另外一个试试(原本JTAG选为SWD,原本SWD选为JTAG),如果可以识别就代表可以进行程序烧录了。

串口烧录程序

我们使用串口烧录程序,使用USB转TTL线,USB转TTL驱动根据我们内部的转换芯片安装相应的驱动,常见的有一下几种:CH340,PL2303,FTDI,CP210x等,驱动完成之后,右键Target目录选择Options for Target…..,在弹出的Options for target 选项卡中选择Output选项,勾选上Create Hex File复选框,这样我们在编译代码时,便会在工程目录下生成Hex文件,我们串口烧录程序其实就是使用外部工具将该Hex文件中的内容,烧录到STM32 FLASH中去。需要使用到的烧录软件可以使用JLink 官方提供的串口烧录软件,也可以使用 mcuisp USB一键下载工具也叫作FlyMcu进行烧录。
使用FlyMCU时,首先需要指定软件使用的串口号和波特率,在进行程序烧录之前必须设置我们STM32的烧录模式,需要将STM32 BOOT0设置为高电平,BOOT1设置为低电平,然后复位STM32,在FlyMcu中首先选择好要下载的HEX文件(编译生成的HEX文件在工程目录下生成),然后选择STMISP选项卡,点击开始编程按钮,便可以进行程序烧录了。

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值