资讯详情

stm32——手动移植HAL库以及错误解决方案(以STM32F103ZE为例)

:代码可读性差,二次开发难度大,每次查阅用户手册都很麻烦

HAL仓库包装了一层通用接口,标准化了一套通用接口,大大提高了代码的通用性

:STM32CubeMX是一个配置STM32代码工具包装了硬件抽象层、中间层、示例代码等。

STM32CubeMX它是一种图形工具,也是C代码生成器的配置和初始化(STM32 configuration and initialization C code generation),也就是说,一些与芯片相关的初始化代码在开发初期自动生成。

从上图可以看得出,它包含了STM所有系列芯片包括示例和样本(Examples and demos)、中间组件(Middleware Components)、硬件抽象层(Hardwaree abstraction layer)。

具体介绍:STM32CubeMX介绍、下载和安装_labelerHuang的博客-CSDN博客_stm32cubemx

说明文档,如何使用HAL库固件包

包含BSP/CMSIS/HAL_Driver这三个文件夹,BSP支持官方开发板的库包,CMSIS是除外设驱动外的标准接口库,HAL_Driver就是HAL库驱动包

为硬件提供硬件提供一些服务,包括ST文件夹下为ST包括官方中间件emWIN图形界面库和USB主/从机接口库,Third_Party例如,第三方中间件,FatFs文件系统,FreeROTS实时系统,LwIP网络协议线

:官方开发板的各种工程师理论,包含各种外设如何使用,以及外设与中间件的耦合

一些通用文件,如官方示例中的音频、视频和字库数据

一 自己移植

接下来,我们可以看到新项目已经project目录下已有相关文件

设置完成后

8.设置STARTUP文件夹

启动文件位置

文件的位置

文件的位置

文件位置

设置完成如图所示

添加路径的方法如下

添加的三个文件分别是

注意这里的宏定义

这里可以编译程序

找到源文件,用记事本打开,解释原因, 该文件应放在应用文件夹下,并更名为stm32f1xx_hal_conf.h,这个文件决定了那些外设驱动可以被编译到工程中

开始解决这个问题

(1)将文件复制到user夹下文件,改名

(2)将user文件夹添加到路径中

再次编译,仍然报告错误,错误信息显示找不到设备,点击错误报告的第一个文件,找到自己的设备

然后做出以下改变,解决这个问题,

再次编译仍然报错,.\Objects\1proj.axf: Error: L6218E: Undefined symbol HAL_RCC_GetPCLK1Freq 等等,这是因为有些函数没有正确添加到项目中,然后在项目中添加相应的文件,因为缺乏相应的第一个文件,可以根据提示依次添加

文件位置如下

编译又报错了.\Objects\1proj.axf: Error: L6218E: Undefined symbol main (referred from ent

,这是因为main.c文件中没有入口函数main.c中声明入口函数

终于不报错了,手动配置正式完成!

标签: 电位器的103

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台