当前位置:首页 > STM32 > 正文内容

STM32环境搭建,建立工程及程序烧录

智凡单片机2018-03-20STM323609

开发环境的搭建:

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破解

接下来我们就是要进行软件的破解了,在网上下载一个破解软件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,便会在指定目录下创建工程了。 
设备外设选择

新建文件

我们可以在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文件。 
20160805141751553.png 
然后在双击main.c文件在其中添加测试代码:

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

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

程序烧录:

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

在安装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驱动并没有集成在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选项卡,点击开始编程按钮,便可以进行程序烧录了。


扫描二维码推送至手机访问。

版权声明:本文由智凡单片机c语言入门发布,如需转载请注明出处。

分享给朋友:

相关文章

STM32 I/O口不能正常输出高低电平问题的解决方案

STM32 I/O口不能正常输出高低电平问题的解决方案

I/O口不能正常输出一般都是端口被复用了造成的,除了检查程序中是否有把端口复用的程序外,还应注意:有些端口在单片机上电时默认就是复用的,如与JTAG相关的PA13,PA14,PA15,PB3,PB4引...

J_FLASH烧程序后出现的问题

J_FLASH烧程序后出现的问题

现象:用J-FLASH烧写程序到STM32L15后运行,发现进入休眠后无法唤醒,无论是RTC或者外部中断都是一样,板子自带了超级电容。分析:用J-FLASH烧写后没有复位,可能导致某些寄存器值的异常解...

STM32RTC安装电池后掉电不走时原因与处理

STM32RTC安装电池后掉电不走时原因与处理

    本人在调试STM32 RTC时,使用的是内部的 LSI晶振作为RTC晶振来源,发现有两个问题:    第一:由于...

STM32系统时钟设定及芯片型号库函数选择

STM32系统时钟设定及芯片型号库函数选择

型号选择:在stm32f10x.h中,涉及芯片型号选择,如图:用的为哪个芯片,把芯片去掉注释即可。具体芯片选型,参考程序下面注释外部高速时钟的频率设定,也是在stm32f10x.h 中:此后的设定工作...

基于STM32F103C8T6自制4轴无人机

基于STM32F103C8T6自制4轴无人机

      最近又自学了ARM公司的STM32F103C8T6芯片编程控制,这款芯片比起51单片机强大了不少,其工业化制作的最小系统核心板,比51单片机的重量小了很多很多...

STM32F103C8T6TIM4同时配置4路PWM输出

STM32F103C8T6TIM4同时配置4路PWM输出

首先我们来了解一下PWM的概念,PWM(Pulse Width Modulation)即为脉冲宽度调制。放到我们这里,简单点说,就是利用单片机产生指定占空比和指定频率的方波。例如,单片机输出了一个高电...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。