STM32入门教程-2023版【2-2】新建工程

关注 + 星标公众号    不错过精彩内容

图片

大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作!

一、STM32的三种开发方式

  1. 基于寄存器的开发:与51单片机类似,用程序直接配置寄存器。最底层,最直接,效率更高。但STM32结构复杂,寄存器太多,不推荐

  2. 基于标准库(库函数)的开发:使用ST公司已封装好的函数,通过调用这些函数来间接控制寄存器。由于ST对寄存器的封装比较好,既能满足对寄存器的配置,对开发人员更友好

  3. 基于HAL库的开发:这种方式是图形化界面快速开发,但缺乏对STM32的底层逻辑理解,很难深入学习

二、新建工程所需资料

图片

  • Libraries :库函数的文件,新建工程时会用到

  • Project:官方提供的工程示例和工程模板,在使用库函数时可以参考

  • Utilities:STM32官方评估板的相关例程,此文件存储测评程序

        *评估板就是官方做的小电路板,用来测评STM32

  • Release_Notes:库函数的发布文档,有版本的说明

  • stm32f10x_stdperiph_lib_um:库函数的使用手册,教大家如何使用库函数

三、新建一个有关标准库的工程

1. 新建一个STM32Project文件夹,用来存储后续相关的工程

图片

2. 打开Keil,新建工程

图片

进入刚才我们新建的文件夹

图片

再新建一个文件夹,用来存放本次的工程文件

图片

进入新创建的工程文件夹里,新建本次的工程Project,文件名输入好后,点击保存

图片

工程文件夹名是很容易更改的,可以在名称上起到说明的作用,而新建的工程名不方便更改

3. 接下来选择对应的器件型号

图片

选择对应芯片型号,这里应选择C8那一项

图片

点击ok,会弹出Keil软件的一个新建工程小助手,这个可以帮助我们快速新建工程,暂时不用,可以直接关掉

图片

此时,工程已经建立完毕,但是还不能直接使用,需要添加一些必要的工程文件

图片

4. 移植必要的工程文件

在刚刚新建的工程文件夹里新建个start文件夹

图片

在STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm这个路径下复制所有启动文件,粘贴到新建的Start文件夹里

图片

图片

这些是STM32的启动文件,STM32的程序就是从启动文件开始运行的

在STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x这个路径下复制这三个文件:stm32f10x.h、system_stm32f10x.h、system_stm32f10x.c,粘贴到新建的Start文件夹里

图片

图片

  • 这个stm32f10x.h是STM32外设寄存器描述文件,作用与52单片机REGX52.H头文件作用一样,用来描述STM32有哪些寄存器和它们对应的位置

  • 两个以system开头命名的文件是用来配置时钟的,STM32主频72MHz就是由system文件里面的函数配置的

在STM32入门教程资料\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport这个路径下复制这两个文件,粘贴到新建的Start文件夹里

图片

图片

  • STM32是由内核和内核外围设备组成的,而且这个内核寄存器描述和外围设备描述不是在一起的,所以我们还需要添加内核寄存器描述文件,即这两个文件

  • 这两个cm3(cortex-m)文件就是内核寄存器的描述,.c是内核的配置函数

这样,我们工程的必要文件就复制完成了,但还需要将这几个文件添加到Keil的工程里来

5. 在keil里添加必要的工程文件

这里就是把刚才复制的那些文件,添加到Keil工程里来,点击选中Source Group 1,选中后再点击一下,把这个组名也改为Start

图片

再右键这个文件夹,选择添加已存在的文件到组中

图片

双击打开Start文件夹

图片

点击文件类型小箭头,选择All files(*.*),这样就可以看到文件夹中所有文件了

图片

选择启动文件startup_stm32f10x_md.s的文件,点击Add,添加该文件

图片

按住Ctrl键,依次点击所有的.c.h文件选中,点击Add,添加这些文件,最后点击Close,添加完毕,这样我们的Start文件夹中的文件都添加好了

图片

  • 到这里STM32的start文件已经配置好了,这些是STM32最基本的文件不需要修改 ,带黄色小钥匙的意思就是只读文件

6. 配置头文件路径

此时还不能正常编译工程,还需在工程选项中添加头文件路径,不然软件是无法找到.h文件的,点击魔术棒

图片

选择C/C++一栏,点击Include Paths右边的三个点的按钮

图片

弹出Folder Setup文本框,点击新建路径

图片

再点击右边三个点的按钮,双击Start文件夹,再点击选择文件夹,将Start的路径添加进来

图片

这样就把Start文件夹的头文件路径加进来了,点击ok完成

图片

7. 新建main文件,查看该文件是否可运行

打开工程文件夹,新建一个用来保存main函数文件夹,叫做User

图片

打开Keil,在Target这里右键,点击添加组

图片

创建一个也叫User的文件夹

图片

然后在User上右键,点击添加新文件

图片

选择第一个.c文件,Name为main,注意Location路径,要选择User文件夹,要不然默认是放在文件夹外面的

图片

同时,那在正程文件夹的User目录下,也可以看到我们新建的main.c文件

图片

在这个main.里,我们先右键,插入头文件,选择stm32f10x.h

图片

图片

再写一个main函数​​​​​​

#include "stm32f10x.h"                  // Device header
int main(void){while(1){        }}

图片

一定要在末尾多一行空格,否则程序就会报错

然后我们点击这个Build按钮,编译并建立工程

图片

在最下面Build Output一栏可以看待,0错误0警告代表建立的工程没有问题

图片

到目前为止没有添加过STM32的库函数,所以还是一个基于寄存器开发的工程,如果使用寄存器开发,那么工程建到这里就足够了

作 者 :硬核王同学

------- END -------

关注公众号回复“加群”按规则加入技术交流群  回复“1024”查看更多内容

图片

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬核王同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值