温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

发布时间:2020-06-21 04:30:51 来源:网络 阅读:1033 作者:杨利平 栏目:开发技术

首先下载STM32F10x_StdPeriph_Lib_V3.5.0,许多论坛上有,下边也有链接,这个版本算是比较新的

貌似11年4月左右出来的,里边东西挺全乎~

首先看看解压之后的目录结构吧~

意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

里边有如下文件夹:

_htmresc : ST的 logo

Libraries:  重要的文件均再次文件夹,包含STM32的系统文件和大量头文件,也就是库文件了。 

     子文件:CMSIS :一些内核、内部时钟等驱动,ARM Cortex™ 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。 使用CMSIS,可以为处理器和外设实现一致且简单的软件接口

     子文件:STM32F10x_StdPeriph_Driver :是意法半导体公司为其芯片所加外设开发的标准驱动文件,里边一个含有 .h 文件夹,一个含有 .c 文件夹 分别对应 ADC DMA 等等外设,这些标准库函数是我们的开发可以脱离 强硬件相关的一些 东西,而且里边注释完整 方便阅读理解。

Project:   包含大量外设的例程,和各个软件版本的评估版工程模板。

                 KEIL MDK对应的就是 MDK-ARM 文件下的工程模板。你也可以利用这个工程模板来修改,得到你自己的工程模块。

Utilities: 就是ST官方评估版的相关开发文件:对于自己的板子做的模板也不会用到。

stm32f10x_stdperiph_lib_um:这个是官方库说明文档,里边讲解的很细致,有点英文水平的可以参考,毕竟表述会更加准确,翻一翻有好处。

库文件就简单介绍到这里,下面开始建立我们的MDK模板!

首先在桌面建立建立文件夹  ST_MDK_Template  

然后打开文件夹,在里边建立一下文件夹,便于将固件库整理并且放入相关文件夹

意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

 

Libraries : 这个文件夹是直接将 固件库里边的主目录下的 同名文件夹复制过来即可,因为里边均为库函数 编辑工程是不会做修改,所以不要修改该文件夹的只读属性。

Obj : 用来保存编译链接时产生的一些中间文件,还有最后的目标文件.hex 也会生成到此目录下

User :该文件夹主要用来存储用户工程需要的一些文件,如main.c 等,下边为我在这个目录下的一些文件,其中 main.c  std_periph_conf.h  std_periph_conf.c 三个文件是从工程当中建立的,其余三个是从固件库当中拖过来即可,三个固件库文件位置如下:

stm32f10x_conf.h :   \STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\ 该文件是一个用来设置 是否包含相关外设(adc DMA 等)头文件的预定义头文件

stm32f10x_it.h stm32f10x_it.c  :   \STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\ 这两个文件为一套 用户用来定义外部中断函数的文件,需要用户根据需要修改。

意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板 

文件均已经准备好了,下面就可以进入MDK 当中进行工程配置:

双击打开Keil MDK ,点击新建project ,如图,将保存目录选在刚建立好的最上层目录中

                              意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

然后选择你所使用的芯片 我的是STM32F103R8系,确认之后完成建立如下图:

                                      意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

                                          意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

当出现如上提示问是否添加启动文件时,选择否,因为我们会选择固件库自带的启动文件。

然后在Target1下建立几个group ,project 目录下 右键 add group.. 新建以下 3个group:

                                            意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

sys:用来指向系统启动以及时钟初始化等文件

src:用来指向固件库里外设源文件

user:用来指向用户建立的文件中断函数保存文件(stm3210x_it.h \ .c)

开始向工程当中添加文件~

点击sys 右键add files to group 'sys' 分别添加当前项目所在文件夹下的以下文件

                                         意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

           文件                                    目录                         

startup_stm32f10x_md.s   :ST_MDK_Template\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\  

说明:在以上目录有 许多.s 结尾的汇编启动文件,但是添加时只需要选择你的芯片对应的启动文件,选择依据为你的芯片的ROM容量 分为三种 

小容量(ld):FLASH容量大小为小于等于32K

中容量(md):FLASH容量大小为64K-128K

大容量(hd):FLASH容量大小为256K及以上

system_stm32f10x.c          :ST_MDK_Template\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\

说明: 这个文件用来初始化芯片的系统时钟

core_cm3.c                        :ST_MDK_Template\Libraries\CMSIS\CM3\CoreSupport\

说明:保存着系统最核心的一些函数调用,均为汇编编写

点击src 右键add files to group 'src' 分别添加当前项目所在文件夹下的所有.c文件,以上文件均为外设驱动文件

ST_MDK_Template\Libraries\STM32F10x_StdPeriph_Driver\src

                                            意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

点击user 右键add files to group 'src' 分别添加当前项目一下文件:

                                          意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

stm32f10x_it.c       \\ST_MDK_Template\User  中断函数所在文件

点击新建文件,在user文件夹下建立main.c文件 并且用同样的方法添加到工程中的user group 中 。

将如下代码复制到main.c当中,已备调试,main中实现的是初始化PB0,并拉高该端口电位。

#include"stm32f10x.h"
int main(void)
{

GPIO_InitTypeDef GPIO_InitStructure; 
/* GPIOD Periph clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/* Configure PB0 in output pushpull mode */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);
void GPIO_SetBits(GPIOB,GPIO_Pin_0);
while(1);
}

至此,完成了全部固件库文件的迁移,下面需要在在当前项目中进行一些配置

 

右键单击Target1 ,出现 options for target ....

点击output 标签 点击 select folder for objects 将目录指向新建的Obj文件夹,以使的产生的中间文件均保存在该文件夹下,保持主文件夹的“干净”

意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

点击C\C++ 标签 在Define 文本框输入 两个预定义的量 STM32F10X_MD,USE_STDPERIPH_DRIVER  注意 两个预定义的量中间使用逗号(英文输入状态下)隔开

意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

仍然在C\C++标签下 在Include Paths 文本框当中 添加当前文件夹内所有.h 文件所在目录,以便编译器查找时搜索各级目录,具体步骤不讲,将目录列在这里,需要的可以直接复制,但是前提是按照我的规则命名文件夹,否则你懂得。。。:

意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

.\Libraries\CMSIS\CM3\CoreSupport;.\Libraries\STM32F10x_StdPeriph_Driver\inc;.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x;.\User;..\ST_MDK_Template;.\Libraries\CMSIS\CM3

                                   意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

完成以上步骤呢,一个模板就建好了,点击Build 或者 按 F7 快捷键编译 通过 ~~~

意法半导体固件库stdperiph_lib v3.5 配置工程MDK模板

 

大家可以保留 以后 都可以直接在此基础上 DIY,这样进度会快一些,请各位大侠拍砖~~

还有 我编辑好的 代码打包上传到iask 大家可以点击 此 下载 固件库V3.5  点击 此下载 MDK工程模板

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI