1、下载STM32Cube_FW_F1_V1.8.0库文件
官方下载地址:
官方下载地址需要注册,也可以在下面百度网盘下载:
链接: https://pan.baidu.com/s/1Xbs2_v_AdSL52KA-J1fgLg 提取码: 7y6f
2、建立工程文件夹
新建工程目录HAL_Template,在工程目录HAL_Template内新建CORE、USER、OBJ、HAL_LIB四个文件夹;
CORE 存放内核头文件和启动文件
HAL_LIB 存放外设库文件
OBJ 存放编译好的HEX文件
USER 存放自己编写的程序文件和STM32的一般头文件、顶层头文件、重要c文件
3、复制文件
①:将STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm文件夹下的startup_stm32f103xe.s和STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Include文件夹下的cmsis_armcc.h、core_cm3.h、cmsis_version.h、cmsis_compiler.h文件,共五个文件复制到CORE文件夹下。
②:将STM32Cube_FW_F1_V1.8.0\Drivers\STM32F1xx_HAL_Driver文件夹下Inc、Src两个文件夹全部复制到HAL_LIB文件夹下。
③:将STM32Cube_FW_F1_V1.8.0\Drivers\CMSIS\Device\ST\STM32F1xx\Include文件夹下的stm32f1xx.h、stm32f103xe.h、system_stm32f1xx.h三个头文件复制到USER目录下。
④:将STM32Cube_FW_F1_V1.8.0\Projects\STM32VL-Discovery\Templates\Inc文件夹下的main.h、stm32f1xx_hal_conf.h、stm32f1xx_it.h三个头文件复制到USER目录下。
⑤:将STM32Cube_FW_F1_V1.8.0\Projects\STM32VL-Discovery\Templates\Src文件夹下的main.c、stm32f1xx_hal_msp.c、stm32f1xx_it.c、system_stm32f1xx.c四个头文件复制到USER目录下。
4、在MDK-5中新建工程,工程文件保存到USER目录下。
选择芯片型号——>确定
5、打开Manage Project Items窗口,进行如下设置
注意:在加入文件值CORE目录要在最下边,选成所有文件类型。
HAL_LIB加入文件是HAL_LIB目录下src目录中的所有文件。
USER加入USER目录下的所有.c的文件。
6、点击魔术棒按钮打开设置对话框,按照如下设置
Include Paths选择如下三个文件夹
7、编译工程,出现如下错误
处理方法:打开main.h文件,删除#include "stm32vl_discovery.h"这一行。
stm32vl_discovery.h 好像是针对开发板的头文件
重新编译报错如下:
是重复定义错误,处理方法如下:
①去除HAL_LIB\Src目录下stm32f1xx_hal_timebase_tim_template.c文件的只读属性然后打开,删除或注释掉HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)、void HAL_SuspendTick(void)、void HAL_ResumeTick(void)三个函数。
②去除HAL_LIB\Src目录下stm32f1xx_hal_msp_template.c文件的只读属性并打开文件,删除或注释掉void HAL_MspInit(void)和void HAL_MspDeInit(void)函数。
最后编译,没有报错和警告。
一直在网上找相关的资料,大部分是1.7.0版本的资料,仿照着写一下,没有写程序验证,随后试一下,如果有问题随后修改。
标记一下:2019年11月20日21点发稿