首页 > 编程知识 正文

新建基于固件库的MDK5工程模板,基于STM32固件库的Keil μVision5工程模板的步骤?

时间:2023-05-05 14:46:17 阅读:237243 作者:4465

直接开始建
1.先给工程建一个文件夹,就取名叫Template(模板)吧,另外下面建立几个几个子文件夹(规范,不要乱建),子文件夹分别是CORE、FWLIB、OBJ、SYSTEM、USER。
2.打开keil5,选择Project➡New μVision Project菜单项,将目录定位到刚才建立的文件夹Template的子文件USER中,我们将工程名也取名为Template,然后保存。


2.接下来回弹出一个选择芯片型号的界面,这里如图选择即可,我的芯片系列是STM32F407ZG(读者可以选择自己的芯片系列)
注意:一定要安装对应的期间pack才会显示出芯片选择


点击OK后会弹出如下窗口,在这个界面可以添加自己需要的组件,这里不做介绍,点击Cancel即可


3.检查是否建立正确,此时点开USER目录,应该包含两个文件夹和两个文件,如下图所示。

4.现在我们要将官方固件库包里的源码文件复制到我们的工程目录文件夹下。博主使用的固件库版本是STM32F4xx_DSP_StdPeriph_Lib_V1.4.0,下载链接如下https://download.csdn.net/download/OXOXOX6/12191624

打开固件库,定位到这个目录下
STM32F4xx_DSP_StdPeriph_Lib_V1.4.0LibrariesSTM32F4xx_StdPeriph_Driver,将目录下的src和inc文件夹复制到我们刚才建立的Template的子文件夹FWLib下


src下存放的是固件库.c文件,inc存放的是对应的.h文件,每个外设对应一个.c和.h头文件

5.将固件库包里面的启动文件复制到我们Template的子文件CORE下,
打开固件库定位到
STM32F4xx_DSP_StdPeriph_Lib_V1.4.0LibrariesCMSISDeviceSTSTM32F4xxSourceTemplatesarm下,将文件startup_stm32f40_41xxx.s复制到CORE目录下面。


然后定位到STM32F4xx_DSP_StdPeriph_Lib_V1.4.0LibrariesCMSISInclude下,
将里面的头文件core_cm4.h和core_cm4_simd.h也复制到CORE目录下面

6.接下来复制工程模板需要的一些其他头文件和源文件到我们的工程,首先定位到目录
STM32F4xx_DSP_StdPeriph_Lib_V1.4.0LibrariesCMSISDeviceSTSRM32F4xxInclude
将stm32f4xx.h和system_stmf4xx.h复制到USER下

然后定位到STM32F4xx_DSP_StdPeriph_Lib_V1.4.0ProjectSTM32F4xx_StdPeriph_Templates下
复制main.c、stm32f4xx_conf.h、stm32f4xx_it.c、stm32f4xx_it.h、system_stm32f4xx.c五个文件到USER下


到此需要复制固件库文件就结束了

8.接下来就是将复制过来的文件加入到我们的工程中。打开keil5如下图所示,右键单击 Target1 ,在弹出的菜单中选择Manage Pro-ject Items

如下图所示将Target1名字修改为Template,然后再Groups栏删掉Source Group1,新建3个分别是USER、CORE和FWLIB,然后点击OK窗口会自动关闭


9.再次右键单击 Target1 ,在弹出的菜单中选择Manage Pro-ject Items

打开后单击FWLIB,然后单击右边的Add Files

然后定位到我们自建的子文件FWLIBsrc下,将src下所有文件选中(Ctrl+A)再单击Add,然后单击close,就可以再Files列表下看到已经有了我们添加的文件

可以看到,添加进来的有adc.c结尾的文件,对应的就是模数转换外设,这里所有的文件都对应一个外设,如果你用不到的可以不添加,新手全部一起添加,以后学会了在慢慢删除多余文件

这里我们把一个名为stm32f4xx_fmc.c的文件删掉,我们32F40系列用不着,这是F42和F43用的,注意别删错了,有很多相似的

10.单击USER,再单击Add Files定位到USER文件夹下,添加如下图所示三个文件进来


11.添加启动文件(此处务必跟着图做,不然容易抓狂)

单击CORE,再单击Add Files,定位到CORE,会发现是空的

其实并不是这里是空的,而是文件类型需要更换,看下图

在更换文件类型为Ail files后我们就会愉快的发现,有文件了

这里我们再次全选,单击Add,然后单击Close,就可以看到已经添加成功!

然后我们单击OK,这一步就完成了,此时我们点开工程就可以看到里面已经有文件了,如下图左边

12.接下来我们要告诉MDK应该到哪个目录下去找这些添加了的头文件
这一步是很重要的,没有设置头文件路径那么工程会报错头文件路径找不到
步骤如图,USER、CORE、FWLIB三个都需要添加








注意:下面这一步请仔细看,非常容易惯性思维出错

最后完成是下图这个样子的,然后点OK,在点OK即可

13.不要着急,32单片机作为目前主流单片机功能强大,工程自然也稍显繁琐
接下来我们需要添加一个全局宏定义标识符,方法如下图

然后跟着下面步骤在Define中输入(最好直接复制)
STM32F40_41xxx,USE_STDPERIPH_DRIVER




单击OK
14.更改main.c文件为最后检验工程做准备,我们打开main.c文件,并将下面这段代码复制到当中

#include "stm32f4xx.h"void Delay(__IO uint32_t nCount);void Delay(__IO uint32_t nCount){ while(nCount--){}}int main(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOF, &GPIO_InitStructure); while(1){GPIO_SetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);Delay(0x7FFFFF);GPIO_ResetBits(GPIOF,GPIO_Pin_9|GPIO_Pin_10);Delay(0x7FFFFF);}}



15.点击编译,0错误0警告大功告成!

结语:很多时候新手建立会出现各种各样的错误,下面提供正点原子标准工程模板下载的链接(不需要积分)
链接:https://pan.baidu.com/s/1zxtFE27oTy9rhWgmkuo28w
提取码:rd8j

如有错误,欢迎指正。
本文末尾提供的资源仅供学习使用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。