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

发布者:老桃子最新更新时间:2018-12-15 来源: eefocus关键字:STM32  环境搭建  程序烧录 手机看文章 扫描二维码
随时随地手机看文章

开发环境的搭建:


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 


安装程序从当前开始安装,等待安装完成. 

 

软件安装界面4 


如果提示安装驱动,如果需要使用到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文件。 

 

添加文件到工程中去 


然后在双击main.c文件在其中添加测试代码:


#include "stm32f10x.h"

int main(void){

    return 0;

}


编写完成后,点击编译可以看到Build Output可以看到0 Error,0 Warning表示编译成功 


这里写图片描述


程序烧录:


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选项卡,点击开始编程按钮,便可以进行程序烧录了。

关键字:STM32  环境搭建  程序烧录 引用地址:STM32环境搭建,建立工程及程序烧录

上一篇:STM32 Keil中关于stlink的调试 下载设置
下一篇:STM32 ST-LINK Utility无法下载的处理方法

推荐阅读最新更新时间:2024-03-16 16:20

【STM32CubeMX】3,STM32的HAL库运用小方法
1,当在hal头文件中看到该函数时,还不理解,直接复制百度就好 如HAL_UART_Transmit(),有些论坛讲解的非常详细 2,hal_adc.c文件一般都是详细解释, hal_adc.h文件都是关键函数的综述,这个对于快速上手非常重要
[单片机]
【STM32CubeMX】3,<font color='red'>STM32</font>的HAL库运用小方法
stm32定时器(基本定时器)操作寄存器版
定时器本质 定时器的本质:计数器 定时器的构成:时钟源+计数器+重载值 1、stm32的定时器 stm32定时器数量较多、功能比较强;不同的定时器功能有不同。 stm32的定时器进行类型划分。分为三类:①基本定时器;②通用定时器;③高级定时器 基本定时器:用于定时器,还可以用于触发DAC(数模转换器)、ADC(模数转换器)工作。 通用定时器:具备基本定时器所有的功能;捕获输入、比较输出、捕获PWM波、生成PWM波、支持霍尔元件 高级定时器:具备通用定时器所有的功能:支持死区、刹车功能。 STM32F407的基本定时器有TIM6、TIM7. STM32F407的通用定时器有TIM2~TI
[单片机]
<font color='red'>stm32</font>定时器(基本定时器)操作寄存器版
STM32的下载及调试模式 接口
使用的最多的调试方式莫过于 JTAG 和SWD方式。 JTAG: JTAG (Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。相关JTAG引脚的定义为: TMS:模式选择,TMS用来设置JTAG接口处于某种特定的测试模式; TCK:时钟输入; TDI:数据输入,数据通过TDI引脚输入JTAG接口; TDO:数据输出,数据通过TDO引脚从JTAG接
[单片机]
CRC校验 、STM32中CRC计算单元、 CRC应用
从这一段时间后台反馈的问题可以看得出来,好些朋友对CRC没有什么概念,今天就在这里讲述一下关于CRC校验、STM32中CRC计算单元相关内容。 1关于CRC校验 CRC:Cyclic Redundancy Check,即循环冗余校验码。 CRC是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。 循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 ---来自百度百科 学电子、计算机相关专业的同学都应该学习过CRC的基础原理。其原理说难不难,可以说就是一个公式。同时,说简单也不简单,这个公
[单片机]
CRC校验 、<font color='red'>STM32</font>中CRC计算单元、 CRC应用
stm32驱动lora模块sx1278
开发环境 keil5 子设备读取Ds18b20数据,通过iic显示到OLED 屏幕上,同时用spi协议发送给lora,再传给网关。 网关接收到数据在OLED 屏幕上显示。 单片机源码: #include stdio.h #include DELAY/Delay.h #include UART/uart.h #include ADC/ADC.h #include LED/LED.h #include IIC/IIC.h #include OLED/OLED.h #include SPIx/SPIx.h #include SX1278/SX1278.h #define ALARM 22 int ma
[单片机]
STM32系列第12篇--电容触摸按键原理
原理: R: 外接电容充放电电阻。 Cs: TPAD和PCB间的杂散电容。 Cx: 手指按下时,手指和TPAD之间的电容。 开关: 电容放电开关,由STM32IO口代替。 没有按下的时候,充电时间为T1(default)。按下TPAD,电容变大,所以充电时间为T2。我们可以通过检测充放电时间,来判断是否按下。如果T2-T1大于某个值,就可以判断有按键按下。 检测电容触摸按键过程: ①TPAD引脚设置为推挽输出,输出0,实现电容放电到0。 ②TPAD引脚设置为浮空输入(IO复位后的状态),电容开始充电。 ③同时开启TPAD引脚的输入捕获开始捕获。 ④等待充电完成(充电到底Vx,检测到上升沿)。 ⑤计算充电时间。
[单片机]
<font color='red'>STM32</font>系列第12篇--电容触摸按键原理
安全启动 - STM32安全启动架构
安全需要一个起点。 现在我们理解,没有安全启动,设备平台的安全难以得到保证。安全启动要求启动的位置一定是固定在某个地方。那么固定启动位置靠什么保证? 必须靠硬件 。软件本身的特点,决定了它很容易被修改,即使做了加密和加扰,破解的难度依然比硬件低很多。所以,安全启动一定是靠 STM32 硬件来保证。 脱离硬件谈安全启动基本上是不可能的 。 实现 Root of Trust(信任根)通用的做法是什么呢?一般是, 芯片有一个 Bootrom 启动只读存储区 。硬件的设计保证,芯片加电启动一定是从这个只读的甚至不可见的 Bootrom 里执行。 事实上,保持安全启动的原则不变,但是实现的方式可以不一样。 对于这个 Bootrom,
[单片机]
基于STM32F100VBT6的32位MCU开发板设计与实现
RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80 年代的MIPS主机(即RISC 机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。STM32F100VBT6采用ARM Cortex-M3 32位RISC内核,工作频率24MHz,集成了高速嵌入式存储器(闪存高达128kB、SRAM高达8kB)以及各种增强外设和连接到两条APB总线的I/O。所有器件
[单片机]
基于STM32F100VBT6的32位MCU开发板设计与实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved