STM32入门教程

新建工程

为了防止文件看起来非常乱,我们在新建工程之前可以先创建一个文件夹,名字随便起,我创建了一个名为stm32project的文件夹,以后都可以在这个文件夹里面保存我们的工程
在这里插入图片描述

创建好文件夹之后我们打开keil5软件
在这里插入图片描述

点击project,创建一个新工程
在这里插入图片描述
之后我们打开我们创建的文件夹,在里面再创建一个文件夹,名字最好起这个与这个工程用途有关的
在这里插入图片描述

给工程起一个名字,点击保存
在这里插入图片描述

保存之后我们点击箭头所指的图标,找到我们所使用的stm32对应的芯片,如果没有器件支持包,可以看我的keil5安装教程: keil5安装教程
在这里插入图片描述

这里我选择的是我使用的芯片型号,选好之后点击ok
在这里插入图片描述

然后会弹出一个keil的新建工程小助手,可以帮助我们快速新建工程,在这里我们暂时用不到,可以把它关掉
在这里插入图片描述

现在可以看到,我们的工程已经建好了
在这里插入图片描述

不过这个工程现在是不能用的,我们首先要添加一个启动文件,启动文件需要下载固件库,固件库在我发的keil5的安装教程里面的链接里面: keil5安装教程
我们首先打开固件库文件夹,接着打开STM32F10x_StdPeriph_Lib_V3.5.0文件夹
在这里插入图片描述

接着依次打开Libraries–>CMSIS–>CM3–>DeviceSupport–>ST–>STM32F10x–> startup–>arm,然后我们就可以看到启动文件了
在这里插入图片描述

我们可以看到启动文件有很多,我们具体应该选择哪一个呢?可以参考这个图片结合启动文件的后缀去选择启动文件,因为我的是stm32c8t6,c指的是256k flash容量,因此我选择后缀是hd.s的启动文件
在这里插入图片描述

我们复制一下这个文件
在这里插入图片描述

找到我们刚才创建工程的文件夹
在这里插入图片描述

为了防止我们分不清文件,我们可以新建一个名为start的文件夹,这样我们就知道里面是启动文件了
在这里插入图片描述

把我们刚才复制的启动文件放进start文件夹里面
在这里插入图片描述
接着我们回到固件库的STM32F10x文件夹,把图中的三个文件复制进start文件夹中
在这里插入图片描述
在这里我做一下解释,这里的stm32f10x.h,是stm32的外设寄存器描述文件,是用来描述stm32有哪些寄存器和它所对应的地址的。system文件主要是用来配置时钟的,stm32的72MHz的主频就是system函数里面的文件配置的。

因为这个stm32是内核和内核外围的设备组成的,而且这个内核的寄存器描述和外围设备的描述文件是不在一起的,所以我们还需要添加一个内核寄存器的描述文件,我们可以打开固件库中的cm3
在这里插入图片描述
打开CoreSupport,这两个文件就是我们需要添加的内核寄存器的描述文件
在这里插入图片描述
我们继续把它复制粘贴到我们创建的start文件夹里面,到这里启动文件已经全部复制完成了,大家可以看一下有没有遗漏的
在这里插入图片描述
我们回到keil5软件,把Target下的文件改成start,这样是为了方便区分
在这里插入图片描述
然后我们右击start,选择add existing files to group start,打开之后,我们选择刚才创建的start文件夹,文件类型选择all files,把我们刚才复制到里面的文件都选择上,Ctrl+A,然后点击add添加进去。
在这里插入图片描述
然后点击close返回

这里可以看到,我们的文件已经添加进去了,这些都是stm32的基本文件,是不需要修改的,我们可以看到上面的钥匙图标,意思是它是只读文件
在这里插入图片描述
之后我们还需要在工程选项里面添加上这个文件夹的头文件路径,否则软件是找不到.h文件的,我们首先点击工具栏里面的魔术棒图标在这里插入图片描述
打开之后点击c/c++
在这里插入图片描述
找到include paths,点击旁边的三个点
在这里插入图片描述
然后新建文件,继续点击三个点在这里插入图片描述
选择start文件夹
在这里插入图片描述
点击ok,这样就把这个文件夹的头文件路径添加进来了
在这里插入图片描述
接着我们打开工程文件夹,创建一个user文件夹
在这里插入图片描述
然后打开keil5,右击Target,点击add group,创建好之后把名字改成user
在这里插入图片描述
右击user,选择add new item to group user,选择cfile
在这里插入图片描述
切记添加完成之后不要急着点add,我们还有修改一下文件保存位置,把位置修改成我们刚才新建的user文件夹,然后随便起个名字,点击add
在这里插入图片描述
我们随便写一个程序点击编译,程序是否会报错,如果没有报错说明我们之前的步骤没有错误
在这里插入图片描述
我们可以看到没有错误也没有警告
在这里插入图片描述

由于这个工程还没有添加基于stm32的库函数,所以他还是一个基于寄存器的开发工程,接下来我们为这个工程添加库函数,首先我们打开我们的工程文件夹,新建一个名为library的文件夹,在这个文件夹里存放我们的库函数
在这里插入图片描述
接着我们打开固件库文件夹,打开libraries
在这里插入图片描述
打开STM32F10x_StdPeriph_Driver
在这里插入图片描述
我们把src和inc里面所有的文件复制粘贴到工程文件里面的library里面,这里的src里面全部是库函数的源文件,inc里面全部是库函数的头文件,一下是复制完的图在这里插入图片描述

然后我们返回keil5软件,新建组,把名字改成library,把我们刚才添加进工程文件里面library的所有文件添加到library里面,添加完成后是这样的在这里插入图片描述

不过现在还不能使用库函数,我们打开固件库文件夹中的project文件夹
在这里插入图片描述
然后点击STM32F10x_StdPeriph_Template
在这里插入图片描述
打开之后我们可以看到三个文件
这里的conf.h文件是用来配置库函数的头文件包含关系的
两个it文件是用来存放中断函数的
我们把这三个函数复制到工程文件里面的user文件里面

在这里插入图片描述
接着回到keil软件,把刚才这几个文件添加到user组里,添加好之后是这样的
在这里插入图片描述
接着我们打开魔术棒,选择c/c++,将USE_STDPERIPH_DRIVER输入到define中
在这里插入图片描述
然后把library和user的头文件路径也添加上
在这里插入图片描述
然后我们点击这个扳手的图标
在这里插入图片描述
选择UTF-8,这样可以防止出现一些中文乱码的问题
在这里插入图片描述

结语

到这里工程已经建好了,下篇文章我会教大家怎样使用stm32,已经如何往里面写程序,如果有什么不对的地方大家可以在评论区提问,我会给大家耐心解答的,希望大家点点关注,我也是一个刚入门的小白,如果有写的不好的地方大家可以提出了,我会及时更正的,谢谢大家支持

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

include、

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

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

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

打赏作者

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

抵扣说明:

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

余额充值