STM32(HAL_工程模板的搭建)

目录

一、准备文件

二、创建工程

三、创建分组

四、配置文件处理

五、编译错误处理


一、准备文件

准备HAL库文件: ST官网( 意法半导体-STMicroelectronics )搜索STM32Cube, 本文使用"STM32Cube_FW_F4_V1.24.1" 版本的HAL库, 使用的是F4的库文件。

创建文件:STM32F4_Template(工程目录)。

  • App:保存APP应用程序。
  • Bsw:保存底层驱动程序。
  • Doc:保存说明文档。
  • Lib:保存 HAL 库文件。
  • Output:保存输出文件。
  • Project:保存工程目录。

在 "Bsw" 目录下新建 "main" 目录。

在 "main" 目录下新建 "main.c" 文件。

将 "STM32Cube_FW_F4_V1.24.1\Drivers" 目录下的 "CMSIS" 和 "STM32F4xx_HAL_Driver"复制到工程中的 Lib 目录下。

二、创建工程

在Keil中新建一个工程,且命名为 "Project" 保存至 "Project" 目录下。

挑选芯片型号 STM32F407xx:

弹出的界面点击取消。

三、创建分组

STARTUP: startup_stm32f407xx.s。

CMSIS: system_stm32f4xx.c。

STM32F4xx_HAL_Driver: HAL 驱动库文件。

Bsw: 编写底层驱动文件。

App: 编写应用层程序。

向分组目录下加入文件:

STATTUP目录下加入 -> startup_stm32f407xx.s:

STM32F4_Template\Lib\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm

CMSIS目录下加入 -> system_stm32f4xx.c:

STM32F4_Base_Template\STM32F4_Template\Lib\CMSIS\Device\ST\STM32F4xx\Source\Templates

加载HAL所有驱动库文件:

STM32F4_Base_Template\STM32F4_Template\Lib\STM32F4xx_HAL_Driver\Src

添加之前创建好的 main.c 文件:

点击OK:

创建的分组如下:

四、配置文件处理

stm32f4xx_hal_conf_template.h 拷贝到 Lib目录下并命名为:stm32f4xx_hal_conf.h

STM32F4_Template\Lib\STM32F4xx_HAL_Driver\Inc

编写main 入口函数并保存:

配置定位.h目录:

STM32F4_Template\Lib\CMSIS\Include

STM32F4_Template\Lib\CMSIS\Device\ST\STM32F4xx\Include

STM32F4_Template\Lib\STM32F4xx_HAL_Driver\Inc

STM32F4_Template\Bsw\main

USE_HAL_DRIVER,STM32F407xx

五、编译错误处理

点击编译:

解决报错问题一:

没有引入该文件的目录:

STM32F4_Template\Lib

再编译:

解决报错问题二:

右键移除(Remove)以下框选的文件:

在编译->编译成功:

相关推荐
偶像你挑的噻6 小时前
13-Linux驱动开发-中断子系统
linux·驱动开发·stm32·嵌入式硬件
偶像你挑的噻8 小时前
Linux应用开发-9-信号
linux·stm32·嵌入式硬件
没有医保李先生9 小时前
STM32 Hal库的Uart串口接受
stm32·单片机·嵌入式硬件
Neil今天也要学习11 小时前
永磁同步电机控制算法--自建参数可变电机模型
单片机·嵌入式硬件·算法
松涛和鸣12 小时前
DAY20 Optimizing VS Code for C/C++ Development on Ubuntu
linux·c语言·开发语言·c++·嵌入式硬件·ubuntu
罗汉松(山水白河)12 小时前
STM32F407核心板
stm32·单片机·嵌入式硬件
DIY机器人工房12 小时前
简单理解:什么是GSM?
stm32·单片机·嵌入式硬件·gsm·diy机器人工房
hazy1k13 小时前
RA6E2基础-RTC时钟与日历介绍及使用
stm32·单片机·嵌入式硬件·esp32·实时音视频·ra
2401_8534482313 小时前
FreeRTOS项目---WiFi模块(2)
stm32·单片机·freertos·esp8266·通信协议
DIY机器人工房13 小时前
简单理解:什么是运放?
单片机·嵌入式硬件·运放·diy机器人工房