新建基于标准固件库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文件夹:
该文件夹下有CMSIS和STM32F10x_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文件夹:
该文件夹下有CMSIS和STM32F10x_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
暂无评论