嵌入式学习笔记 - 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字样

相关推荐
Zw-awa14 分钟前
反馈:让系统知道自己做得对不对
stm32
海绵宝宝转agent24 分钟前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
每天都要写算法(努力版)39 分钟前
【行业前沿报告】DAgger:让智能体在自己走到的状态上学习
人工智能·学习·机器学习
女神下凡3 小时前
芯参谋(38):NAND_MCP_电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
91刘仁德3 小时前
HTTP协议详解:从URL到HTTP服务器的完整实战
服务器·网络·笔记·网络协议·http
嵌入式学习菌3 小时前
FreeRTOS 中断管理实战:BASEPRI 寄存器实验
单片机·嵌入式硬件
HRTOS4 小时前
HRTOS:一个名字背后的目标——不断逼近硬实时
经验分享·单片机·系统架构·51单片机
sunshine22 girl4 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
sunshine22 girl5 小时前
Java学习六 Java常见API-1-Radom随机数
java·开发语言·学习
Answer1st6 小时前
【嵌入式学习】嵌入式原理知识-DMA(九)
学习