STM32嵌入式编程学习到提高:【3】新建项目工程

-------------------------------------------------------------------------------------------------------------------------

工程文件:放在百度云盘里,需要的自行下载!!!

链接:https://pan.baidu.com/s/1KWd25O6tC1Pp703PK48G1Q?pwd=xyza
提取码:xyza

-------------------------------------------------------------------------------------------------------------------------

本文讲一下,基于STM32F103C8R6的芯片,用Keil5新建一个项目工程。

1:新建一个文件夹,比如叫STM32,然后在里面再创建一个:新建项目工程的文件夹,用来存放项目工程。

2:打开Keil5,新建项目,然后存放在刚才的:新建项目工程,文件夹下面。

3:比如项目名: L100(大家这里可以随意取名字),然后点保存

4:选择硬件开发板主芯片型号,我们用的是:STM32F103C8R6(一定要选对!!!根据自己手上的开发板),然后点OK

5:这样就得到了一个空白的项目工程

6:然后看一下项目文件夹下面自动生成了一个文件夹,这里面较重要的是objects文件夹,后面编译生成的目标文件会在这个文件夹里

在这里也可以更改目标文件输出文件夹,默认不改

7:先创建几个文件夹

8:接下来我们就应该往空白的项目工程里,添加内容了

比如:我们都知道C语言需要main函数,那我们先建一个main.c的文件

点击打新建文件,命名为main.c然后,存在user下面

把.c文件添加到工程中

这样就添加了.c文件,后面其它文件添加方法一样

我们先来写一个main函数

注意:Keil5有个bug,文件最后一定要多回敲一行,要不编译的时候会warning,所以养成习惯,每次在最后都多回车一行。

9:到这有了C的main,我们再想想,芯片上电怎么就跑到main了呢?先告诉大家,这之前需要跑一段.s的启动文件,那我们就得把启动文件加到工程里面来对吧

怎么看懂这个启动文件,看我另外一个文章:一文看懂STM32启动文件:【代码逐行讲解】-CSDN博客

10:好了,这样就能跑起来了?显然不行,我们是嵌入式开发,软件必须依赖硬件环境,我们还需要把一些必须的硬件相当文件加进来,比如:内核Core文件,STM32F103是基于ARm的m3内核开发的,所以我们需要把m3的内核文件加进来,

只在Keil5里面加.c就行,.h我们通过include的方法包含进行,这样Keil上就不用显示很多文件,显得杂乱

我们再讲一个怎么在keil里设置包含.h文件的路径,选对文件夹,后面这个文件夹里的.h文件就能自动包含进来了。(在.c文件中通过: #include "XXX.h"语句)

11:编译看看,发现了问题,报错了,.s文件中的SystemInit函数没有实现,那么我们需要把systeminit的官方库文件添加进来。

12:到这里想一下,我们只是加了main文件和启动文件,以及core 文件,我们还没有加stm32的官方库文件,这样肯定是跑不起来了。所以先把必要的官方库文件加进来,我们一点一点来,这样也好对STM32的代码结构有个清晰的理解,先把加进来systeminit函数,这个函数主要是初始始系统时钟,想一下数字电路在跑起来的前提是不是得有时钟,就跟人的心脏一样,不跳起来,什么都是白扯。

同样,记得把头文件包含进去!!!

13:再编译一下,发现少了一个stm32f10x.h的头文件,我们把这个文件也加进来

14:再编译一下,到此基本编译就能通过了,也没有文件包含的错误

来了,一个基本的新建工程项目就算完成了。

下一节我们讲一下怎么,写一个串口打印输出和输入调试功能

通过串口工具打印输出: "hello world!!!"

然后通过串口工具输入:“HI:”
单片机响应再输出:“How are you!!!”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DevinLGT

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

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

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

打赏作者

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

抵扣说明:

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

余额充值