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

相关推荐
一米阳光866110 小时前
软考(中级)软件设计师核心笔记(3)数据库系统——概念、数据库设计
数据库·笔记·职场发展·软考·软件设计师
jianqiang.xue10 小时前
系统服务层设计:沉淀通用能力,让业务层只专注业务
stm32·单片机·嵌入式硬件·mcu·物联网·esp32
漏刻有时10 小时前
PHP GeoJSON转PNG地图渲染程序开发笔记、源码解读、问题复盘与整改方案
android·笔记·php
暗影凋落11 小时前
CMake构建学习笔记-SQLite库的构建
笔记·学习·sqlite
无垠的广袤12 小时前
【RA-Eco-RA2T1开发板】介绍、环境搭建、工程测试
单片机·嵌入式硬件·串口通信·uart·开发环境·blink
画面无声12 小时前
STM32的SPI通信原理与练习记录
c语言·stm32·单片机·嵌入式硬件·学习
weixin_4568083813 小时前
【沁恒蓝牙开发】IAP升级流程
c语言·单片机·嵌入式硬件
zzm62813 小时前
精读KDD 2017最佳论文:通过类比挖掘加速创新 | 阅读笔记
笔记
你有哈莫吗13 小时前
CMake构建学习笔记-iconv库的构建
笔记·学习
ctlover14 小时前
Python学习第4日
学习