手动新建stm32模板(HAL库)

 

1、打开mdk5,点击Project目录下的New   uVision   Project

2、软件弹出页面对新建的工程文件进行取名字并保存

 

 3、选择对应的芯片包下具体使用的mcu(我学习的和拥有的是F103C8T6,所以选择的便是F103C8T6)

 

4、创建完成(如果弹出页面选择ok即可)

 

 HAL 库开发包: STM32Cube_FW_F1_V1.8.0 这是 ST 官网下载的 STM32CubeF1 包完

整版,位于目录(压缩包):

“\8, STM32 参考资料\1, STM32CubeF1 固件包\ en.stm32cubef1.zip”。

5、 在建立工程之前,建议用户在电脑的某个目录下面建立一个文件夹,后面所建立的工

程都可以放在这个文件夹下面,这里我们建立一个文件夹为 Template。这是工程的根目录文件

夹。然后为了方便我们存放工程需要的一些其他文件,这里我们还新建下面 4 个子文件夹:

CORE , HALLIB, OBJ 和 USER。

 

 

 6、将之前创建工程时的文件选中”CTRL+x“剪切到user文件夹下

 

7、  打开官方 STM32CubeF1 固件库,定位到我们之前准备好的 HAL 库包的目录:

\STM32Cube_FW_F1_V1.8.0\Drivers\STM32F1xx_HAL_Driver 下面,将目录下面的 Src,Inc 文件

夹复制到我们刚才建立的 HALLIB 文件夹下面。 Src 存放的是固件库的.c 文件, Inc 存放的是对

应的.h 文件,您不妨打开这两个文件目录过目一下里面的文件,每个外设对应一个.c 文件和一

个.h 头文件。 操作完成后工程 HALLIB 目录内容如下图

 

8) 接下来,我们要将 STM32CubeF1 包里面相关的启动文件以及一些关键头文件复制到我们的

工程目录 CORE 之下。打开 STM32CubeF1 包,定位到目录

\STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm 下面,

将 文 件 startup_stm32f103xe.s 复 制 到 CORE 目 录 下 面 。 然 后 定 位 到 目 录

\STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Include,将里面的四个头文件: cmsis_armcc.h

cmsis_armclang.hcmsis_compiler.hcore_cm3.h 同样复制到 CORE 目录下面。

9) 接下来我们要复制工程模板需要的一些其他头文件和源文件到我们工程。首先定位到目录:

\STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Device\ST\STM32F1xx\Include 将里面的 3 个文件

stm32f1xx.h, system_stm32f1xx.h 和 stm32f103xe.h 复制到 USER 目录之下。

 

 10)进入目录\STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Templates 目录下,这个目录下面有好几个文件夹,如下图 3.3.1.10,我们需要从 Src 和 Inc 文件夹下面复制我们需要的文

件到 USER 目录。 如下图:

 

首先我们打开 Inc目录,将目录下面的 3个头文件 stm32f1xx_it.h,stm32f1xx_hal_conf.h 和 main.h全部复制到 USER 目录下面。然后我们打开 Src 目录,将下面的四个源文件 system_stm32f1xx.c,stm32f1xx_it.c, stm32f1xx_hal_msp.c 和 main.c 同样全部复制到 USER 目录下面。相关文件复制到 USER 目录之后 USER 目录文件如下图 :

11)打开光盘的“4,程序源码\标准例程-库函数版本\实验 0-1 Template 工程模板-新建工程章节使用”工程目录,从里面复制 SYSTEM 文件夹到我们的 Template 工程模板根目录即可。

到这里,工程模板所需要的所有文件都已经复制进去。接下来,我们将在 MDK 5中将这些文件

添加到工程。

12) 下面我们将前面复制过来的文件加入我们的工程中。右键点击 Target1,选择 Manage ProjectItems,如下图 :

13) Project Targets 一栏,我们将 Target 名字修改为 Template,然后在 Groups 一栏删掉一个 SourceGroup1,建立四个 Groups: USER, SYSTEM, CORE,和 HALLIB。然后点击 OK,可以看到我们的 Target 名字以及 Groups 情况如下图 :

 

14)我们按照步骤 9 的方法,右键点击点击 Tempate,选择 Manage Project Items.然后选择需要添加文件的 Group,这里第一步我们选择HALLIB,然后点击右边的 Add Files,定位到我们刚才建立的目录\HALLIB\Src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close.可以看到 Files 列表下面包含我们添加的文件,如下图 :

15) 用上面同样的方法,将 Groups 定位到 CORE, USER 和 SYSTEM 分组之下,添加需要的

文件。CORE 分组下面需要添加的文件为一些头文件以及启动文件 startup_stm32f103xe.s(注意,默认添加的时候文件类型为.c, 添加.h 头文件和 startup_stm32f103xe.s 启动文件的时候,你需要选择文件类型为 All files 才能看得到这些文件)。 USER 分组下面需要添加的文件 USER 目录下面所有的.c 文件: main.c, stm32f1xx_hal_msp.c, stm32f1xx_it.c 和 system_stm32f1xx.c 四个文件。 SYSTEM 分组下面需要添加 SYSTEM 文件夹下所有子文件夹内的.c 文件,包括 sys.c,usart.c 和 delay.c 三个源文件。添加完必要的文件到工程之后,最后点击 OK,回到工程主界面。操作过程如下图 :

 

 

 

16) 接下来我们要在 MDK 里面设置头文件存放路径。也就是告诉 MDK 到那些目录下面去

寻找包含了的头文件。这一步骤非常重要。 如果没有设置头文件路径,那么工程会出现报

错头文件路径找不到。

 

 

这里添加的路径必须添加到头文件所在目录的最后一级。比如在 SYSTEM

文件夹下面有三个子文件夹下面都有.h 头文件,这些头文件在工程中都需要使用到,所以我们

必须将这三个子目录都包含进来。这里我们需要添加的头文件路径包括: \CORE, \USER\,

\SYSTEM\delay , \SYSTEM\usart, SYSTEM\sys 以及\HALLIB\Inc。这里还需要提醒大家, HAL库存放头文件子目录是\HALLIB\Inc,不是 HALLIB\Src

 

 

17) 接下来对于 STM32F103 系列的工程,还需要添加全局宏定义标识符,所谓全局宏定义

标识符,就是在工程中任何地方都可见。添加方法是点击魔术棒之后,进入 C/C++选项卡,然

后在 Define 输入框连输入: USE_HAL_DRIVER,STM32F103xE。

 

18) 接下来我们要编译工程,在编译之前我们首先要选择编译中间文件编译后存放目录。

前面我们讲过, MDK 默认编译后的中间文件存放目录为 USER 目录下面的 Listings 和 Objects

子目录,这里为了和我们 ALIENTEK 工程结构保持一致,我们重新选择存放到目录 OBJ 目录

之下。操作方法是点击魔术棒 ,然后选择“Output”选项下面的“Select folder for objects…”,

然后选择目录为我们上面新建的 OBJ 目录,然后依次点击 OK 即可。

 

要勾上“Create HEX File” 选项和 Browse Information 选项。 Create HEX File 选项选

上是要求编译之后生成 HEX 文件。 而 Browse Information 选项选上是方便我们查看工程

中的一些函数变量定义等。

这就完成工程创建啦。 

 

 

 

 

 

 

 

此软件包中提供的 HAL(硬件抽象层)驱动程序支持 以下STM32F100xx STM32F101xx,STM32F102xx,STM32F103xx ,STM32F105xx 和STM32F107xx系列。 STM32CubeF1固件包附带一个更新程序实用程序STM32CubeUpdater,可配置为自动或按需检查新固件包更新(新版本或/和补丁)。 要快速入门STM32CubeF1固件包,请参阅UM1847,您可以从www.st.com/stm32cube下载固件更新和所有最新文档。 下面 链接到最有用的文档 最新版本 的STM32CubeF1固件包。 UM1847:STM32F1系列STM32CubeF1入门。 UM1853:STM32CubeF1 Nucleo演示固件。 UM1850:STM32F1xx HAL驱动程序的说明。 UM1734:STM32Cube USB设备库。 UM1720:STM32Cube USB主机库。 UM1721:使用FatF在STM32Cube上开发应用程序。 UM1722:使用RTOS在STM32Cube上开发应用程序。 UM1713:使用LwIP TCP / IP堆栈在STM32Cube上开发应用程序。 UM1709:STM32Cube以太网IAP示例。 更新历史记录 V1.7.0 / 09-October-2018 主要变化 用于修复已知缺陷和一些实现增强的常规更新 对HAL驱动程序进行的以下更改需要基于较旧的HAL版本更新应用程序代码 HAL CAN驱动程序的返工(兼容性中断) 新的HAL CAN驱动程序已经使用新的API进行了重新设计,以绕过先前HAL CAN驱动程序版本中对CAN Tx / Rx FIFO管理的限制。 推荐使用新的HAL CAN驱动程序。它通常位于Drivers / STM32F1xx_HAL_Driver / Src和Drivers / STM32f1xx_HAL_Driver / Inc文件夹中。它可以通过stm32f1xx_hal_conf.h中的开关HAL_CAN_MODULE_ENABLED启用 出于软件兼容性原因,旧版HAL CAN驱动程序也出现在Drivers / STM32F1xx_HAL_Driver / Src / Legacy和Drivers / STM32F1xx_HAL_Driver / Inc / Legacy文件夹中。建议不要使用它作为已弃用的用法。但是可以通过stm32f1xx_hal_conf.h中的开关HAL_CAN_LEGACY_MODULE_ENABLED启用它 \ HAL stm32f1xx_hal_conf_template.h:添加开关 HAL_CAN_LEGACY_MODULE_ENABLED HAL CAN驱动程序已使用新API进行了重新设计。 \ CMSIS 修复已知缺陷 和几个实现 增强 \项目 更新CAN示例以支持新的HAL CAN驱动程序。 通过添加开关 HAL_CAN_LEGACY_MODULE_ENABLED 更新stm32f1xx_hal_conf.h 。 F 或完整的更改列表,请参阅每个固件组件的发行说明 内容 STM32CubeF1固件包附带了一系列在STMicroelectronics板上运行的示例,由板组织,并为主要支持的工具链提供预配置项目。此表(STM32CubeProjectsList.html)中提供了详尽的项目列表。 项目发布说明 STM32F103RB,核蛋白 应用程序 (发行说明) 演示(发行说明) 示例(发行说明) Examples_LL (发行说明) Examples_MIX (发行说明) 模板(发行说明) Templates_LL (发行说明) STM32VL发现 示例(发行说明) 模板(发行说明) Templates_LL (发行说明) STM3210C_EVAL 应用程序(发行说明) 示例(发行说明) 模板(发行说明) Templates_LL (发行说明) STM3210E_EVAL 应用程序(发行说明) 示例(发行说明) Examples_LL (发行说明) Examples_MIX (发行说明) 模板(发行说明) Templates_LL (发行说明) 驱动程序 Cortex-M CMSIS V4.5(发行说明) STM32F1xx CMSIS V4.3.0(发行说明) STM32F1 xx HAL V1.1.3 (发行说明) BSP STM3210E_EVAL V7.0.0 (发行说明) BSP STM3210C_EVAL V6.1.0 (发行说明) BSP STM32VL-Discovery V1.0.1 (发行
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值