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即可
官方网站下载
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魔术棒设置
点击魔术棒
- 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库快速开发的,给大家提供类似博客和视频,供大家参考