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

相关推荐
LCG元几秒前
STM32 DAC+DMA+定时器触发生成任意波形:数据对齐陷阱、输出缓冲器选型与频率精度实测
stm32·单片机·嵌入式硬件
疯狂打码的少年5 分钟前
【数据结构】排序算法:归并排序与基数排序
数据结构·笔记·算法·排序算法
橙橙笔记1 小时前
Python学习第三部分
开发语言·python·学习
weixin_431600441 小时前
Agent Workflow 学习向:最小拖拽画布,看得见地编排,再一键跑通
后端·学习·ai·dify
LuminousCPP1 小时前
嵌入式-51单片机入门(三)-数码管驱动:从单管点亮、多位扫描到动态刷新与消隐原理
笔记·单片机·嵌入式硬件·51单片机
小柯博客1 小时前
01 · 点亮 STM32MP25 的硬件视频编解码:VPU 与那些“安静“的坑
c语言·笔记·stm32·单片机·嵌入式硬件·嵌入式·视频编解码
欧叶冲冲冲1 小时前
uv Python 环境管理笔记
笔记·python·uv
自小吃多1 小时前
Capture软件原理图PDF输出笔记
笔记·嵌入式硬件
很楠爱上1 小时前
从“AI 看合同”到可举证的合同决策链:CounterClause(对薄) 的架构设计与工程实践
人工智能·经验分享·python·学习·agent
爱奥尼欧1 小时前
14.输出解析器-Pydantic与JSON
人工智能·学习·langchain·json