STM32F103keil环境搭建

STM32f103 keil5环境搭建

免责声明

本博客仅供学习和参考使用;
任何人使用本博客相关内容进行的商业以及其他违法行为与博主无关;
本博客涉及到的相关内容如果侵犯相关利益,请联系博主进行删除

参考

第26讲 STM32串口寄存器库函数配置方法_手把手教你写串口通信实例h_哔哩哔哩_bilibili

STM32F103C8T6开发环境的搭建(畅通无阻)-优快云博客

基于Keilv5新建STM32F103工程_stm32 如何使用keil自带的cmsis-优快云博客

开发环境

Windows pc电脑
开发板 正点原子STM32f103精英版

时间:2025/0304

涉及到的开发工具

在这里插入图片描述

1.集成开发软件安装

1.1MDK5

介绍
MDK版本是否免费说明
MDK – Lite(免费版)免费支持少部分MCU和中间件,代码限制32KB
MDK – Essential(基础版)收费支持部分MCU和中间件
MDK – Plus(增强版)收费支持所有MCU和部分中间件
MDK – Professional(专业版)收费支持所有MCU和中间件
MDK – Community(社区版)免费支持少部分MCU和中间件,非商用

官网链接:https://developer.arm.com/Tools%20and%20Software/Keil%20MDK/MDK-Middleware#Editions

下面是正点原子教程里面对MDK的介绍;时间和版本信息对不上外,其他可参考

	MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为: MDK5.14,该版本使用 uVision5 IDE 集成开发环境,是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。MDK5 向后兼容 MDK4 和 MDK3 等,以前的项目同样可以在 MDK5 上进行开发(但是头文件方面得全部自己添加), MDK5 同时加强了针对 Cortex-M 微控制器开发的支持,并且对传统的开发模式和界面进行升级, MDK5 由两个部分组成: MDK Core 和 Software Packs。其中, Software Packs 可以独立于工具链进行新芯片支持和中间库的升级。 
如下图 所示:

在这里插入图片描述

	从上图可以看出, MDK Core 又分成四个部分: uVision IDE with Editor(编辑器), ARM C/C++ Compiler(编译器), Pack Installer(包安装器), uVision Debugger with Trace(调试跟踪器)。 
	uVision IDE 从 MDK4.7 版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往的 IDE 改进很大。Software Packs(包安装器)又分为: Device(芯片支持), CMSIS(ARM Cortex 微控制器软件接口标准) 和 Mdidleware(中间库)三个小部分,通过包安装器,我们可以安装最新的组件,从而支持新的器件、提供新的设备驱动库以及最新例程等,加速产品开发进度。同以往的 MDK 不同,以往的 MDK 把所有组件到包含到了一个安装包里面,显得十分“笨重”, MDK5 则不一样, MDK Core 是一个独立的安装包,它并不包含器件支持和设备驱动等组件, 但是一般都会包括 CMSIS 组件,大小 350M 左右,相对于 MDK4.70A 的 500 多 M,瘦身不少,
    MDK5 安装包可以在: http://www.keil.com/demo/eval/arm.htm 下载到。而器件支持、设备驱动、 CMSIS 等组件,则可以点击 MDK5 的 Build Toolbar 的最后一个图标调出 Pack Installer,来进行各种组件的安装。也可以在 http://www.keil.com/dd2/pack 这个地址下载,然后进行安装。在 MDK5 安装完成后,要让 MDK5 支持 STM32F103 的开发,我们还需要安装 STM32F1的器件支持包: Keil.STM32F1xx_DFP.1.0.5.pack(STM32F1 的器件包)。
如何获取MDK和器件支持包
MDK安装 = MDK软件安装 + 器件支持包

MDK软件下载:https://www.keil.com/download/product/

在这里插入图片描述

器件支持包下载:https://www.keil.com/dd2/pack/

在这里插入图片描述

我是基于正点原子的学习资源进行学习和操作的,直接使用对应网盘配套资源进行安装和下载了;

正点原子资源下载:stm32f103精英开发板V2 — 正点原子资料下载中心 1.0.0 文档

大概位置如下:

注意:具体位置有变动

在这里插入图片描述

注意事项:

安装注意事项:

1,安装目录及路径不要有任何中文汉字在里面!!
2,最好电脑系统名和用户名,都不要有任何中文!
3,MDK安装时Core安装路径建议设置在:D:\MDK5.36
4,MDK安装时Pack安装路径建议设置在:D:\MDK5.36\Packs


请按如下顺序安装:

1,安装mdk5.36.exe 
2,安装Keil.STM32F1xx_DFP.2.3.0.pack  
3,注册方法(仅限学生使用):http://www.openedv.com/thread-10334-1-1.html

注意:默认软件是试用版的,只能编译不超过32K的代码!!超过32K需要注册,请大家购买正版软件使用。
      对于学生朋友,无力购买正版的,请参考注册方法,注册后使用。请大家多多支持正版。
安装MDK

1.双击

在这里插入图片描述

2.next

在这里插入图片描述

3.同意,next

在这里插入图片描述

4.选择安装目录,next

在这里插入图片描述

5.随便填写注册信息

在这里插入图片描述

6.等待安装,(1-2分钟)

在这里插入图片描述

7.finish

在这里插入图片描述

8.自动下载软件支持包

在这里插入图片描述

9.关掉自动下载

在这里插入图片描述

在这里插入图片描述

10.检查软件是否能正常打开

在这里插入图片描述

在这里插入图片描述

正常,MDK开发软件安装成功

1.2安装器件支持包

以往的 MDK 把所有组件到包含到了一个安装包里面;
MDK5则需要下载开发软件和对应型号的软件支持包

1.双击STM32F1系列软件支持包

在这里插入图片描述

2.next

在这里插入图片描述

3.finish

在这里插入图片描述

4.检查是否安装成功

找一个成功运行过的例程进行编译

双击

在这里插入图片描述

点击编译

在这里插入图片描述

0警告,0报错;安装成功

其他方式安装器件支持包
keil软件更新

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我的软件里面没有找到对应的支持包;大概是软件下载没有下载完全;
一般就是上面类似的地方点击install即可
官方网站下载

网址:Arm Keil | Devices

1.搜索

在这里插入图片描述

2.选择型号

在这里插入图片描述

3.点击下载

在这里插入图片描述

在这里插入图片描述

4.双击安装

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.点击finish

1.3MDK破解

破解注册机下载

参考:

Keil_v5 MDK 安装教程(包含安装包&破解软件) - Tree_Bing - 博客园

下载链接:

链接:https://pan.baidu.com/s/1swM31yXQ-ec-iOWjINzMxg?pwd=1234
提取码:1234

注意:记得关闭电脑的杀毒软件;否则自动把这个文件删除

1.打开MDK软件,点击file,许可证

在这里插入图片描述

2.复制CID在这里插入图片描述

3.填写注册机信息

在这里插入图片描述

4.注册失败

没有以管理员身份运行

在这里插入图片描述

5.重新以管理员身份运行MDK5

在这里插入图片描述

6.重新注册

在这里插入图片描述

7.注册成功

在这里插入图片描述

1.4安装串口驱动

1.确认是否需要安装以及驱动型号

正点原子的开发板是将串口1的PA9 PA10连接CH340usb转串口的模块上,用作烧录和调试程序使用的;
所以,我们需要下载CH340的串口驱动程序在PC端安装;具体实物图如下:

在这里插入图片描述

在这里插入图片描述

如果你调试和烧录程序不使用这种方式则忽略

USB虚拟串口作用

在这里插入图片描述

2.下载CH340驱动程序

下载链接:🔥驱动与软件

1.点击下载

在这里插入图片描述

正点原子下载链接:

stm32f103精英开发板V2 — 正点原子资料下载中心 1.0.0 文档

正点原子软件包位置:

在这里插入图片描述

2.点击安装

在这里插入图片描述

我安装过了

在这里插入图片描述

正常是安装成功的

在这里插入图片描述

在这里插入图片描述

后续

其他的调试方式,大概率也需要安装对应的驱动程序
比如J-link,
我不使用Jlink,暂不安装

2.工程模板搭建

2.1基于库函数版本

2.1.1准备工作
1,下载相关STM32Cube 官方固件包(F1/F4/F7/H7)
方式一:ST官网搜索STM32Cube
方式二:正点原子开发板A盘资料:A 盘→8,STM32 参考资料→1,STM32CubeXX固件包

2,搭建开发环境:请参考搭建上面开发环境教程
2.1.2新建工程文件夹

(1)新建一个工程根目录文件夹,并在该文件夹里新建D/M/O/P/U文件夹

在这里插入图片描述

文件夹名称作用
Drivers存放与硬件相关的驱动层文件
Middlewares存放正点原子提供的中间层组件文件和第三方中间层文件
Output存放工程编译输出文件
Projects存放 MDK 工程文件
User存放HAL库用户配置文件、main.c、中断处理文件,以及分散加载文件

(2) 拷贝新建工程相关文件

Drivers文件夹

这个直接复制模板内容
文件夹名称作用
BSP存放开发板板级支持包驱动代码,如各种外设驱动
CMSIS存放 CMSIS 底层代码,如启动文件(.s 文件)等
SYSTEM存放正点原子系统级核心驱动代码,如 sys.c、 delay.c 和 usart.c 等

Middlewares文件夹

该文件夹用于存放正点原子和其他第三方提供的中间层代码(组件/Lib 等),

如: USMART、MALLOC、 TEXT、 FATFS、 USB、 LWIP、各种 OS、各种 GUI 等

Output文件夹

该文件夹用于存放编译器编译工程输出的中间文件,比如: .hex、 .bin、 .o 文件等

Projects文件夹

该文件夹用于存放编译器(MDK、 IAR 等)工程文件,主要用 MDK,为了方便区分,
在该文件夹下新建: MDK-ARM 文件夹,用于存放 MDK 的工程文件

User文件夹

该文件夹用于存放用户编写的代码,如: main.c 等
2.1.3 新建一个工程框架
步骤:
	1,新建工程
	2,保存工程
	3,选择主控型号
	4,删除文件夹

a.新建在这里插入图片描述

b.选择目录

在这里插入图片描述

c.选择型号

在这里插入图片描述

d.x掉不用管

在这里插入图片描述

e.检查以及删除多余文件和目录

在这里插入图片描述

在这里插入图片描述

文件夹名称作用
DebugConfig用于存放调试设置信息文件(.dbgconf),不可删除!
Listings用于存放编译过程产生的链接列表等文件
Objects用于存放编译过程产生的调试信息、 .hex、预览、 .lib 文件等
2.1.4添加文件
步骤:
	1,设置工程名和分组名
	2,添加启动文件
	3,添加User源码
	4,添加SYSTEM源码
	5,添加STM32F1xx_HAL_Driver 源码

工程名:Template
分组名:Startup,User,Drivers/SYSTEM, Drivers/STM32F1xx_HAL_Driver ,Readme

1,设置工程名和分组名

在这里插入图片描述

复制粘贴

在这里插入图片描述

在这里插入图片描述

2,添加启动文件

注意修改文件类型:.s

在这里插入图片描述

3, 添加User源码

在这里插入图片描述

在这里插入图片描述

缺失的地方从正点原子资料里面拷贝过来

在这里插入图片描述

在这里插入图片描述

4,添加SYSTEM源码

在这里插入图片描述

5,添加STM32F1xx_HAL_Driver 源码

按需添加,涉及哪些 添加那些

在这里插入图片描述

在这里插入图片描述

也可以,一次全部添加(省事)

在这里插入图片描述

取消只读

在这里插入图片描述

在这里插入图片描述

2.1…5魔术棒设置

在这里插入图片描述

点击魔术棒

在这里插入图片描述

  1. Target 选项卡

编译器

在这里插入图片描述

在这里插入图片描述

外部晶振频率

高版本无法设置,暂时不管;可能影响的就是延时时间
解决办法就是MDK5回退版本

在这里插入图片描述

mdk调试界面定时器时钟频率错误_mdk5改不了晶振-优快云博客

2,Output 选项卡

输出目录

在这里插入图片描述

在这里插入图片描述

Create HEX File 选项选上是要求编译之后生成 HEX 文件。而 Browse Information 选项选上是方便我们查看工程
中的一些函数变量定义等

3,Listing 选项卡

设置Listing输出文件夹

在这里插入图片描述

4,C/C++ 选项卡

设置全局宏定义、优化等级、C99 Mode、设置头文件包含路径

设置全局宏定义、优化等级、C99 Mode

全局宏定义作用

在这里插入图片描述

在这里插入图片描述

设置头文件包含路径

在这里插入图片描述

5,Debug 选项卡

在这里插入图片描述

根据自己的情况进行选择,没有使用下载器直接忽略该步骤

在这里插入图片描述

6,Utilities 选项卡

设置下载功能、下载算法、下载算法起始地址和大小等

在这里插入图片描述

在这里插入图片描述

7,Linker 选项卡(可选)

基本用不上,想了解的可以看视频

第27讲 基础篇-新建HAL版本MDK工程2_哔哩哔哩_bilibili

2.1…6 添加 main.c,并编写代码

1.将正点原子的main.c文件拿过来

在这里插入图片描述

2.工程中添加

在这里插入图片描述

编译成功

在这里插入图片描述

小插曲:

..\..\Output\st_f103zet6.axf: Error: L6200E: Symbol HAL_InitTick multiply defined (by stm32f1xx_hal_timebase_tim_template.o and stm32f1xx_hal_timebase_rtc_alarm_template.o).

如果出现类似报错,就删除其中一个不使用的文件即可;

报错原因:两个文件出现重复内容导致生成的.o中间文件有问题

操作:

在这里插入图片描述

删掉

在这里插入图片描述

2.2基于寄存器版本

累了。。。。

后续用到再补充吧,基本上公司开发都是hal库快速开发的,给大家提供类似博客和视频,供大家参考

视频

博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值