我用的是正点的STM32F767 来进行学习。之后的这个系列笔记开头未标明的话,用的也是这个板子。
六、新建HAL库工程模板
1、找到STM32CubeFX 固件包(X 为板子的型号)
将固件包解压
2、新建工程目录,复制需要的文件到工程目录
-
新建一个文件夹,在文件夹中新建一个USER 文件夹、HALLIB 文件夹(外设库文件夹,放置HAL 库)、CORE 文件夹(启动文件夹,放置内核)、OBJ 文件夹(放置编译中介文件) -
在固件包中找到图片中的文件 -
将Inc (外设程序头文件)、Src (外设程序源文件)文件夹放到HALLIB 文件夹中。 -
将startup_stm32f767xx.s (启动文件)放到CORE 文件夹中, -
将内核头文件 文件放到CORE 文件夹中。 -
将顶层头文件 、主头文件 、源文件 放到USER 文件夹中。
3、新建工程
-
在USER 文件夹里新建一个工程 -
按照自己板子的型号来选择创建类型 -
环境选项中选择Cancel -
会发现文件夹中出现了一些文件,其中uvprojx 是打开文件
4、在MDK中设置头文件存放路径
- 打开文件管理器,并将
启动文件 (startup_stm32f767xx.s )导入
-
如果文件头像上有钥匙,就将启动文件 (startup_stm32f767xx.s )的只读属性取消勾选。 -
将其余几个文件夹和其中的.h 、.c 文件导入,文件类型选择All files 。 其中有几个.c 文件不需要,删除即可。 -
把带钥匙的文件取消只读 选项。 -
将头文件文件夹导入
注:软件不会沿着目录向下寻找,所以所有头文件必须精确到根目录)
5、配置MDK:全局宏定义等
- 根据不同的板子、不同的工程将不同的
预编译全局宏定义标识符 输入 - 根据不同板子规格修改
外部晶振 - 勾选
生成HEX工程文件 选项 - 设置
编译中间文件 的存放目录
6、编写用户函数
-
将main.h 中#include "stm32f7xx_nucleo_144.h" 删除 -
将main.c 函数中的内容删掉即可开始编程 -
程序需注意的地方 (1)程序末尾必须要有回车
7、修改修改相关文件参数适配开发板
- 在
HALLIB 文件夹中打开stm32f7xx_hal.h 下的stm32f7xx_hal_conf.h 找到#define HSE_VALUE ,将后面的晶振改成板子的晶振,我是用的板子晶振是25MHz ,所以把8000000U 改成25000000U - 在
HALLIB 文件夹中打开stm32f7xx_hal.h 找到HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); ,将优先级分组从4 改为2 ,即HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2);
8、添加ALIENTEK 系统文件夹SYSTEM
- 在目标文件夹找到
SYSTEM 文件夹,将其拷到USER 和HEADER 所在的文件夹。 - 将其内的c文件依次导入
- 将三个c文件的头文件坐在目录导入
- 编译–成功
9、导入到开发板
详情参考另一篇笔记(STM32笔记)三、ST-LINK下载
|