打印
[应用相关]

STM32工程建立与配置流程

[复制链接]
879|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
此次的STM32的学习,在程序的建立与配置上比以往的要更加复杂,所以我个人也是在新建工程以及配置工程中经常落下一些设置与操作,使整个程序无法仿真,或是程序编译出错,为了避免这样的一些基础的错误与麻烦,我个人整理了整个工程的建立到工程的全部设置,谈不上非常细致吧 但也足够让一些像我一样的初学者避免一些错误,已经掌握的同学若在日后有忘记的地方 也可非常方便的来查看一下。下面就是创建与配置工程的全部过程,初学者请务必按顺序一步步查看。

使用特权

评论回复
沙发
高级安全大使|  楼主 | 2021-4-30 22:03 | 只看该作者
1.新建一个文件夹(以后编的每一个工程都放进这个文件夹里,自己命名,例如:STM32 file)

使用特权

评论回复
板凳
高级安全大使|  楼主 | 2021-4-30 22:06 | 只看该作者
2.创建一个文件夹(名字可以根据你编写的程序来命名,如:Demo)

2.1 新建子文件夹User,用于存放用户源程序

2.2 新建子文件夹Project,用户KEIL工程文件

2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。

2.4 将main.c stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h system_stm32f10x.c等文件复制到User文件 下

使用特权

评论回复
地板
高级安全大使|  楼主 | 2021-4-30 22:07 | 只看该作者
3. 复制源代码到Demo文件夹

3.1 将stm32f10x_stdperiph_lib3.5 / Libraries文件夹整体复制到Demo文件夹下 这就是ST的标准库,是以源代码形式提供的。 也可将Libraries文件夹直接复制到STM32 file文件夹下,使其与以后创建的其他工程同在一个目录下,这样可使在该目录在的工程共享Libraries。免得以后创建一个工程就得复制一次Libraries

使用特权

评论回复
5
高级安全大使|  楼主 | 2021-4-30 22:08 | 只看该作者
4.新建一个Keil MDK工程

4.1 启动Keil MDK,点击菜单 New uVision Project,然后按向导进行操作

使用特权

评论回复
6
高级安全大使|  楼主 | 2021-4-30 22:09 | 只看该作者
4.2 选择CPU类型为 STM32F103RC

使用特权

评论回复
7
高级安全大使|  楼主 | 2021-4-30 22:15 | 只看该作者
4.3 当提示是否复制启动代码时,请选择否。

使用特权

评论回复
8
高级安全大使|  楼主 | 2021-4-30 22:16 | 只看该作者
4.4 为了延长芯片使用寿命以及加快仿真速度,可以在 ram中直接仿真(ram仿真速度快),用ram仿真 在断电之后数据就全部丢失了,修改Target名字, 添加两个,一个Flash,一个Ram 如图

使用特权

评论回复
9
高级安全大使|  楼主 | 2021-4-30 22:23 | 只看该作者

使用特权

评论回复
10
高级安全大使|  楼主 | 2021-4-30 22:24 | 只看该作者
4.5 为了便于代码管理,在这个Project下创建几个Group

User : 存放用户自己写的源代码

RVMDK : 存放启动文件(汇编文件)

StdPeriph_Driver : 存放ST标准库文件

CMSIS : 存放CMSIS接口文件(这也是库的一部分)

使用特权

评论回复
11
高级安全大使|  楼主 | 2021-4-30 22:25 | 只看该作者
4.6 创建好Group后,我们开始依次添加文件。



添加User: 如main.c stm32f 10x_it.c

添加RVMDK:statup_stm32f 10x_hd.x

添加StdPeriph_Driver :我们用到的一些.C文件。如:misc.c stm32f 10x_rcc.c stm32f 10x_gpio.c

添加CMSIS :core_cm3.c system_stm32f 10x.c

使用特权

评论回复
12
高级安全大使|  楼主 | 2021-4-30 22:26 | 只看该作者
5. 配置工程, 点击“Options”按钮

5.1 打开Flash 调整Flash设置

使用特权

评论回复
13
高级安全大使|  楼主 | 2021-4-30 22:27 | 只看该作者
5.1.1 切换到Output。

选择Object文件夹。

在Create Hex File 前打钩。

将Name Executable 修改为 output 如图:

使用特权

评论回复
14
高级安全大使|  楼主 | 2021-4-30 22:32 | 只看该作者

使用特权

评论回复
15
高级安全大使|  楼主 | 2021-4-30 22:35 | 只看该作者
5.1.2 切换到Listing。

选择Listings文件夹

使用特权

评论回复
16
高级安全大使|  楼主 | 2021-4-30 22:36 | 只看该作者
5.1.3 切换到C/C++

添加两个预编译宏 STM32F10X_HD, USE_STDPERIPH_DRIVER (这是ST库用到了这两个宏)

修改Includes路径

如图:


使用特权

评论回复
17
高级安全大使|  楼主 | 2021-4-30 22:37 | 只看该作者
5.1.4 切换到Debug

选择硬件调试器,我们选择ST-Link Debugger

再 Run to main前打钩

使用特权

评论回复
18
高级安全大使|  楼主 | 2021-4-30 22:39 | 只看该作者
5.1.5 切换到Utilities

选额调试器类型,我们选择ST-Link Debugger

使用特权

评论回复
19
高级安全大使|  楼主 | 2021-4-30 22:39 | 只看该作者
5.2 打开Ram,调整Ram设置

使用特权

评论回复
20
高级安全大使|  楼主 | 2021-4-30 22:41 | 只看该作者
5.2.1 切换到target

修改IROM1:0x20000000,0x8000 ; IRAM1:0X20008000,0X8000

如图:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

408

帖子

1

粉丝