嵌入式学习笔记 - STM32 HAL库以及标准库内核以及外设头文件区别问题

一 CMSIS内核驱动文件夹

标准库中CMSIS内核驱动文件夹中,仅包含两个.h文件,其中stm32f10x.h 为stm10系列底层文件如总线以及各片上外设模块寄存器地址,system_stm32f10x.h为系统底层配置文件,主要为时钟配置。

HAL库中CMSIS内核驱动文件夹中,改为如下三个文件,stm32f10x.h文件改为stm2f1xx.h以及stm32f103xe.h两个文件,stm32f103xe.h为stm10系列底层文件如总线以及各片上外设模块寄存器地址,stm2f1xx.h仅为底层配置文件stm32f103xe.h提供配置选择的宏定义,相当于一个入口文件,system_stm32f1xx.h为系统底层配置文件,主要为时钟配置。

注:由于以上区别,当某些标准库的工程历程移植到HAL库上时,如果仍然包含stm32f10x.h,会出现重复定义的问题,就是与stm32f103xe.h定义内容重复了,虽然HAL库中已不含stm32f10x.h头文件,但是KEIL安装根目录下,ARM编译器目录下依然有标准库的驱动源文件,包括头文件STM32F10x.h,而keil默认包含根目录下的头文件,所以会出现重复定义的错误,将包含stm32f10x.h改为包含stm32f1xx.h即可。

二 外设驱动文件夹

原来的标准库下的各外设驱动文件夹如下:

HAL外设驱动文件夹如下,改为STM32F1xx_HAL_Driver文件夹,如同文件夹名字一样,所有驱动文件加了HAL字样

相关推荐
EllinY7 小时前
扩展欧几里得算法 exgcd 详解
c++·笔记·数学·算法·exgcd
jiayong237 小时前
第 17 课:任务选择与批量操作
开发语言·前端·javascript·vue.js·学习
踏着七彩祥云的小丑7 小时前
嵌入式——简单电路常识
单片机·嵌入式硬件
星哥说事7 小时前
开源项目OpenClaw:多AI模型统一调用的技术学习与实践
人工智能·学习
像一只黄油飞7 小时前
第二章-01-字面量
笔记·python·学习·零基础
一个天蝎座 白勺 程序猿7 小时前
零基础AI学习:数学基础要求与补充指南
人工智能·学习·ai
zzb15807 小时前
Android Activity 与 Intent 学习笔记
android·笔记·学习
想放学的刺客7 小时前
单片机嵌入式试题(第34期)嵌入式开发的利器:逻辑分析仪与示波器深度解析
arm开发·stm32·单片机·嵌入式硬件·物联网
Engineer邓祥浩7 小时前
JVM学习笔记(12) 第四部分 程序编译与代码优化 第11章 后端编译与优化
jvm·笔记·学习
羊群智妍7 小时前
2026年GEO监测工具,AI搜索优化免费指南
笔记