1、新建基于标准固件库MDK5工程模板(STM32F103ZET6)

新建基于标准固件库MDK5工程模板

1、STM32官方库文件夹介绍

在这里插入图片描述
如上图,是ST官方提供的STM32标准固件库的文件包结构;
STM32官方固件库下载地址:
https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries/stsw-stm32054.html

1.1.0、Libraries文件夹:
该文件夹下有CMSISSTM32F10x_StdPeriph_Driver两个目录;其中CMSIS目录下是启动文件STM32F10x_StdPeriph_Driver存放的是STM32固件库源码文件;源文件目录下inc目录存放的是类似于“stm32f10x_xxx.h”格式的头文件src目录下存放的是类似于"stm32f10x_xxx.c"格式的固件库源文件
其他两个不是特别重要的文件夹"Project"与"Utilities"分别存放的是官方提供的固件实例源码官方评估板的一些对应源码;
在这里插入图片描述
1.1.1、关键文件介绍
.\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
该目录下对应着以下两个文件:
在这里插入图片描述
这些文件是CMSIS核心文件,提供进入CM3内核的接口,由ARM公司提供,这些都是在编程中无需修改的文件。

.\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
该目录下对应着以下几个文件:
在这里插入图片描述
其中system_stm32f10x.c与之对应的system_stm32f10x.h两个文件的功能是设置系统以及总线的时钟,文件中有一个非要重要的函数:SystemInit();这个函数在我们系统启动的时候都会去调用它,用来设置系统的整个时钟系统。
“stm32f10x.h”文件中主要是系统寄存器的定义申明以及包装内存的一些操作。
我们看到在该文件夹下还有另外一个重要的文件夹:startup 启动文件”;
在这里插入图片描述
之所以目录下有8个启动文件,是因为对于不同容量的芯片启动方式不一样,这里的容量指的是FLASH的大小;
小容量:FLASH≤32k
中容量:64k≤FLASH≤128k
大容量:256k≤FALSHml
其中
startup_stm32f10x_hd.s**适用于大容量,startup_stm32f10x_md.s适用于中容量,startup_stm32f10x_ld.s适用于小容量;

2、新建模板所需准备好的东西

2.1.1、STM32F10x_StdPeriph_Lib_V3.5.0 固件包;注:文章开头有固件包下载地址
2.1.2、MDK5开发环境,当然使用其他版本的MDK-ARM都是无所谓的,由于作者我使用的是MDK-ARM-5;
大家最好是将工程中需要用到标准固件库中一些文件直接一一复制,再粘贴至同一处,方便管理,免得再在新建模板的时候找完这个一下找下一个。
咱们所需要的标准库工程文件基本就在这了,我把文件夹目录地址贴出来,为了简洁一点,就不一个一个截图给大家看了。
2.2.1、inc、src文件夹:STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\

2.2.2、core_cm3.c、core_cm3.h:
STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

2.2.3、startup_stm32f10x_hd.s、stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h:
\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

2.2.4、其他的几个文件
STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
在这里插入图片描述

3、手把手教你新建基于F103标准库工程模板

1、首先在随意地方创建一个名为“Template”文件夹;
在这里插入图片描述
2、在上个文件夹下再新建一个"USER"文件夹;
在这里插入图片描述
3、打开MDK5新建名为“TemPlate”工程项目;
3.1:点击“New uVision Project”;
在这里插入图片描述
3.2:新建Template工程文件
在这里插入图片描述
3.3:弹出该界面,展开STM32F103选项;
在这里插入图片描述
3.4:选择STM32F103XX系列,根据你们自己的芯片型号来选择;
在这里插入图片描述
3.5:上面的工作做完后,文件夹下的效果如下:
在这里插入图片描述
4、返回到TemPlate文件夹下,新建CORE、OBJ、STM32F10x_FWlib三个文件夹。
在这里插入图片描述
5、将前面在STM32提供的官方固件库中复制出来的文件一一粘贴到相应文件夹下,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6、打开刚刚在MDK5中新建的项目工程,右键Target1,点击Manage Project Items,弹出对话框;
在这里插入图片描述
7、弹出的对话框中,在Group中新建三个组;
在这里插入图片描述
8、将文件夹下相应的文件添加至3个组中;
在这里插入图片描述
在这里插入图片描述
大家有没有注意到,我在FWLIB组只添加了两个文件,其实这个里面放的是相应的外设源文件,大家用到什么外设就添加什么就好了,但是一定要注意的是stm32f10x_rcc.c是必须得添加的,不然编译就会报错。
都添加好后,点击OK就行了。
在这里插入图片描述
9、接下来需要包含文件夹,让编译器可以找到这些我们添加过的文件;
在这里插入图片描述
在这里还需要宏定义一下,因为 3.5 版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的
宏定义变量。
不想打字的直接粘贴下面的英文就好了。
“STM32F10X_HD,USE_STDPERIPH_DRIVER"
然后点击OK。
在这里插入图片描述
有一些MDK的版本可能编译后会报错,因为这里默认本来是Use default compiler version6,我们要将其改为Use default compiler version5,然后点击OK,然后回到main.c文件下,按照下面第二张图编写一下程序之后编译就大功告成了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文为CSDN博主「CosmosMar」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pcc5685860/article/details/122214488

新建基于标准固件库MDK5工程模板

1、STM32官方库文件夹介绍

在这里插入图片描述
如上图,是ST官方提供的STM32标准固件库的文件包结构;
STM32官方固件库下载地址:
https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries/stsw-stm32054.html

1.1.0、Libraries文件夹:
该文件夹下有CMSISSTM32F10x_StdPeriph_Driver两个目录;其中CMSIS目录下是启动文件STM32F10x_StdPeriph_Driver存放的是STM32固件库源码文件;源文件目录下inc目录存放的是类似于“stm32f10x_xxx.h”格式的头文件src目录下存放的是类似于"stm32f10x_xxx.c"格式的固件库源文件
其他两个不是特别重要的文件夹"Project"与"Utilities"分别存放的是官方提供的固件实例源码官方评估板的一些对应源码;
在这里插入图片描述
1.1.1、关键文件介绍
.\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
该目录下对应着以下两个文件:
在这里插入图片描述
这些文件是CMSIS核心文件,提供进入CM3内核的接口,由ARM公司提供,这些都是在编程中无需修改的文件。

.\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
该目录下对应着以下几个文件:
在这里插入图片描述
其中system_stm32f10x.c与之对应的system_stm32f10x.h两个文件的功能是设置系统以及总线的时钟,文件中有一个非要重要的函数:SystemInit();这个函数在我们系统启动的时候都会去调用它,用来设置系统的整个时钟系统。
“stm32f10x.h”文件中主要是系统寄存器的定义申明以及包装内存的一些操作。
我们看到在该文件夹下还有另外一个重要的文件夹:startup 启动文件”;
在这里插入图片描述
之所以目录下有8个启动文件,是因为对于不同容量的芯片启动方式不一样,这里的容量指的是FLASH的大小;
小容量:FLASH≤32k
中容量:64k≤FLASH≤128k
大容量:256k≤FALSHml
其中
startup_stm32f10x_hd.s**适用于大容量,startup_stm32f10x_md.s适用于中容量,startup_stm32f10x_ld.s适用于小容量;

2、新建模板所需准备好的东西

2.1.1、STM32F10x_StdPeriph_Lib_V3.5.0 固件包;注:文章开头有固件包下载地址
2.1.2、MDK5开发环境,当然使用其他版本的MDK-ARM都是无所谓的,由于作者我使用的是MDK-ARM-5;
大家最好是将工程中需要用到标准固件库中一些文件直接一一复制,再粘贴至同一处,方便管理,免得再在新建模板的时候找完这个一下找下一个。
咱们所需要的标准库工程文件基本就在这了,我把文件夹目录地址贴出来,为了简洁一点,就不一个一个截图给大家看了。
2.2.1、inc、src文件夹:STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\

2.2.2、core_cm3.c、core_cm3.h:
STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

2.2.3、startup_stm32f10x_hd.s、stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h:
\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

2.2.4、其他的几个文件
STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
在这里插入图片描述

3、手把手教你新建基于F103标准库工程模板

1、首先在随意地方创建一个名为“Template”文件夹;
在这里插入图片描述
2、在上个文件夹下再新建一个"USER"文件夹;
在这里插入图片描述
3、打开MDK5新建名为“TemPlate”工程项目;
3.1:点击“New uVision Project”;
在这里插入图片描述
3.2:新建Template工程文件
在这里插入图片描述
3.3:弹出该界面,展开STM32F103选项;
在这里插入图片描述
3.4:选择STM32F103XX系列,根据你们自己的芯片型号来选择;
在这里插入图片描述
3.5:上面的工作做完后,文件夹下的效果如下:
在这里插入图片描述
4、返回到TemPlate文件夹下,新建CORE、OBJ、STM32F10x_FWlib三个文件夹。
在这里插入图片描述
5、将前面在STM32提供的官方固件库中复制出来的文件一一粘贴到相应文件夹下,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6、打开刚刚在MDK5中新建的项目工程,右键Target1,点击Manage Project Items,弹出对话框;
在这里插入图片描述
7、弹出的对话框中,在Group中新建三个组;
在这里插入图片描述
8、将文件夹下相应的文件添加至3个组中;
在这里插入图片描述
在这里插入图片描述
大家有没有注意到,我在FWLIB组只添加了两个文件,其实这个里面放的是相应的外设源文件,大家用到什么外设就添加什么就好了,但是一定要注意的是stm32f10x_rcc.c是必须得添加的,不然编译就会报错。
都添加好后,点击OK就行了。
在这里插入图片描述
9、接下来需要包含文件夹,让编译器可以找到这些我们添加过的文件;
在这里插入图片描述
在这里还需要宏定义一下,因为 3.5 版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的
宏定义变量。
不想打字的直接粘贴下面的英文就好了。
“STM32F10X_HD,USE_STDPERIPH_DRIVER"
然后点击OK。
在这里插入图片描述
有一些MDK的版本可能编译后会报错,因为这里默认本来是Use default compiler version6,我们要将其改为Use default compiler version5,然后点击OK,然后回到main.c文件下,按照下面第二张图编写一下程序之后编译就大功告成了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文为CSDN博主「CosmosMar」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pcc5685860/article/details/122214488

生成海报
点赞 0

CosmosMar

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

ESP32S2+ES8388移植过程及问题

电路图如下, 有点小瑕疵ES8388_VMID PIN10/19/20电容没有忘加,查资料应该不影响语言输出,可能噪音大,如果能导致不输出请告诉我一下。 ESP32S2管脚映射 这里主

X-bot

X-bot 前言 这个项目是我在稚辉君的视频里面看见的,是一个完全开源的项目,而且对他来说是一个比较简单的项目,但对于我这种没有什么DIY经验的同学来说,还是有点难的,不过