STM32 V3.6固件库创建MDK工程

提示:Keil MDK安装,STM32F10x标准外设库,STM32标准库模板配置


前言

      操作STM32 寄存器实现编程的方法显得相对繁琐,每次配置都需要来回对照着《STM32FXxx中文参考手册》中寄存器的说明, 对每个需要控制的寄存器位写入特定参数,因此在配置的时候非常容易写错,而且代码不易理解,而且工作效率低。 推荐STM32最好的方法是用官方提供的固件库来开发,然后再慢慢通过深入学习对固件库了解底层。

一、文件准备

(1)Keil MDK V3.x,具体版本详见官方网站。

Keil Product Downloadshttps://www.keil.com/download/product/(2)MDK芯片支持包,具体版本详见官方网站。

     MDK V5.xx版本只有MDK Core的安装包,它并不包含器件支持和设备驱动等外部组件。MDK的安装包可以从KEIL的官网下载。(但是需要填写一个简单表格信息)。
MDK5 Software Packshttps://www.keil.com/dd2/Pack

(3)STM32 标准外设库,具体版本详见官方网站。

       STM32标准函数库由ST公司针对STM32提供的函数接口,开发者可调用这些函数接口来配置STM32的寄存器,使开发人员得以脱离最底层的寄存器操作,实现产品的快速开发开发快发、维便于维护等。基于固件库开发其实是架设在寄存器与用户驱动层之间的代码,向下处理与寄存器直接相关的配置,向上为用户提供配置寄存器的接口。

基于固件库VS寄存器开发的逻辑图。

STM32标准外设软件库 - STMicroelectronicshttps://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries.html

二、STM32工程模板的创建

        基于固件库创建项目工程方法有很多,下面是个人总结的方法,可以快速利用STM32固件库创建工程,本人学习板是野火霸道V2,板载MCU为STM32F103ZET6,固件库为STM32F10x_StdPeriph_Lib_V3.6.0。

1.库文件说明

通过解压STM32F10x_StdPeriph_Lib_V3.6.0的得到文件如下:

利用固件库创建工程只需关注Libraries、project两个文件;其中:

(1) Libraries: 包含CMSIS 和STM32F10x_StdPeriph_Driver 文件夹,这两个目录包含固件库核心的所有子文件夹和文件。

(2) project:包含STM32F10x_StdPeriph_Examples和STM32F10x_StdPeriph_Template两个文件,Examples存放的的ST 官方提供的固件实例源码,可以参考修改这个官方提供的实例来快速驱动自己的外设;Template存放的是工程模板。

(3) Utilities:是基于官方评估板的一些对应源码,这个可以忽略。

2.创建工程文件夹及文件拷贝

     根据自己习惯创建7个文件夹,分别是CMSIS、FWLIB、Project、STARTUP、UserSRC、UserINC、Doc。

文件夹说明:

 (1)CMSIS:主要用于存放内核文件。

把V3.6固件库下相关文件拷贝到CMSIS下:

<1>STM32F10x_dsp_StdPeriph_Lib_V3.6.0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport 目录下的core_cm3.ccore_cm3.h两个文件拷贝到CMSIS文件下。

<2>STM32F10x_dsp_StdPeriph_Lib_V3.6.0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x目录下的stm32f10x.hsystem_stm32f10x.csystem_stm32f10x.h三个文件拷贝到CMSIS文件下。

(2)FWLIB:主要存放外设库文件。

把V3.6固件库下相关外设库文件拷贝到FWLIB下:

STM32F10x_dsp_StdPeriph_Lib_V3.6.0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver下的incsrc两文件全部拷贝到FWLIB文件下.

(3)Project:主要存放工程文件。

(4)STARTUP:主要存放MCU启动代码。

把V3.6固件库下相关文件拷贝到STARTUP下:

STM32F10x_dsp_StdPeriph_Lib_V3.6.0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下的启动代码拷贝到STARTUP下,也可以只拷贝和开发MCU相关的配置文件startup_stm32f10x_hd.s(以mcu为STM32F103ZET6为例)。

(5)UserSRC:主要存放用户自定义C文件;

把V3.6固件库例程下的main.c函数拷贝到UserSRC:

STM32F10x_dsp_StdPeriph_Lib_V3.6.0\STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template的main.c拷贝到UserSRC

(6)UserINC:主要存放用户自定义头文件文件;

把V3.6固件库例程下的配置文件stm32f10x_conf.h拷贝到UserINC:

STM32F10x_dsp_StdPeriph_Lib_V3.6.0\STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template的stm32f10x_conf.h拷贝到UserINC

(7)Doc:主要存放用户说明文档。

三、MDK集成开发环境文件加载及配置

(1)创建新工程

》projec--->New uvision project--->GPIO-LED(根据自己定义工程名)-->保存--->选择对应的MCU型号。

 

 (2)添加工程文件

利用工程项目管理创建STARTUP、CMSIS、FWLIB、UserSRC、UserINC、Doc文件夹,并把之前从库文件拷贝的相关文件载入到对应的相关文件夹下。

 (3)MDK加载配置

 a->点击魔术棒添加宏定义文件:复制粘贴TM32F10X_HD, USE_STDPERIPH_DRIVER宏

 b->加载之前拷贝相关文件的头文件

(4)编译测试工程

写个简单空函数,编译一下无出错即说明基于固件库的工程创建完成!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值