学习日志之STM32固件库

2023-05-16

对固件库结构的理解

stm32固件库分为4层:

  • 应用层(application layer)
  • 板级支持包BSP(BSP(board specific package)
  • 硬件抽象层HAL(hardware abstraction layer)
  • 硬件层(hardware)
  1. 应用层:包含有函数使用的工程模板(和相应的开发工具对应)
  2. BSP:这个给外设用的比如led、lcd之类的东西的功能函数库(对应的设备是官方的STMicroelectronics evaluation boards)
  3. HAL:这个是用来控制寄存器的函数库
    • CMSIS:内核外设访问接口,STM32F4xx外设接口,Cortex-M系列的信号处理函数
    • STM32F4xx 标准外设驱动:给所有的外设提供头函数和驱动函数,通过CMSIS访问STM32F4的寄存器

固件库头文件之间的包含关系

在这里插入图片描述

  • stm32f4xx_conf.h
    Peripheral’s drivers configuration file
    The user can enable or disable peripheral header file inclusion by using the template
    This file can also be used to enable or disable the Library run-time failure detection before compiling the firmware library drivers, through the preprocessor define USE_FULL_ASSERT

  • stm32f4xx_ppp.h
    Header file of PPP peripheral
    This file includes the PPP peripheral function and variable definitions used within these functions.

  • stm32f4xx_ppp.c
    Driver source code file of PPP peripheral written in C language

  • stm32f4xx_it.h
    Header file including all interrupt handlers prototypes

  • stm32f4xx_it.c
    Template source file containing the interrupt service routine (ISR) for Cortex-M4F exceptions.
    User can add additional ISR(s) for the used peripheral(s) (for the available peripheral interrupt handler’s name, please refer to the startup file startup_stm32f4xx.s).

  • stm32f4xx.h
    CMSIS Cortex-M4F STM32F4xx device peripheral access layer header file.
    The file is the unique include file that the application programmer is using in the C source code, usually in main.c.

  • system_stm32f4xx.h
    CMSIS Cortex-M4F STM32F4xx devices peripheral access layer system header file

  • system_stm32f4xx.c
    CMSIS Cortex-M4F STM32F4xx devices peripheral access layer system source file.

  • startup_stm32f4xx.s
    STM32F4xx devices startup file, one file per compiler…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习日志之STM32固件库 的相关文章

  • HDU 1085 Holding Bin-Laden Captive!(母函数)

    HDU 1085 Holding Bin Laden Captive xff08 母函数 xff09 题目地址 题意 xff1a 给你cnt1个一元硬币 xff0c cnt2个两元硬币 xff0c cnt3个五元硬币 xff0c 问不能凑出
  • UE自带重定向原理

    UE自带重定向方法验证 核心源码在VS的解决方案中的位置 xff1a UE4 Source Developer AssetTools Private AssetTypeActions AnimSequence cpp中第3237行Remap
  • matlab之bsxfun函数

    lt span style 61 34 font size 18px color ff0000 34 gt 简单的调用方法 xff1a lt span gt bsxfun 64 plus xff0c A xff0c B xff0c 其中 6
  • 关于协方差矩阵需要注意的一个事项

    协方差矩阵是衡量样本的属性 即维度 之间的关系 xff0c 而不是样本与样本之间的关系 比如有100个样本 xff0c 每个样本10个属性 xff0c 那么计算得到的协方差矩阵一定是10 10的 xff0c 而不是100 100的 xff0
  • 【caffe-Windows】caffe+VS2013+Windows+GPU配置+cifar使用

    前言 国际惯例 xff0c 先来波地址 xff1a CUDA WIN7 xff1a 链接 xff1a http pan baidu com s 1nvyA3Qp 密码 xff1a h0f3 官方网址 xff1a https develope
  • 【caffe-Windows】以mnist为例lmdb格式数据

    前言 前面介绍的案例都是leveldb的格式 xff0c 但是比较流行和实用的格式是lmdb xff0c 原因从此网站摘取 它们都是键 值对 xff08 Key Value Pair xff09 嵌入式数据库管理系统编程库 虽然lmdb的内
  • 【theano-windows】学习笔记十——多层感知机手写数字分类

    前言 上一篇学习了softmax 然后更进一步就是学习一下基本的多层感知机 MLP 了 其实多层感知机同时就是w x 43 b用某个激活函数激活一下 得到的结果作为下一层神经元的输入x 类似于 o u t p u t 61 f 3 f 2
  • 【theano-windows】学习笔记二十——LSTM理论及实现

    前言 上一篇学习了RNN xff0c 也知道了在沿着时间线对上下文权重求梯度的时候 xff0c 可能会导致梯度消失或者梯度爆炸 xff0c 然后我们就得学习一波比较常见的优化方法之LSTM 国际惯例 xff0c 参考网址 xff1a LST
  • 【TensorFlow-windows】keras接口——ImageDataGenerator裁剪

    前言 Keras中有一个图像数据处理器ImageDataGenerator xff0c 能够很方便地进行数据增强 xff0c 并且从文件中批量加载图片 xff0c 避免数据集过大时 xff0c 一下子加载进内存会崩掉 但是从官方文档发现 x
  • 梯度下降法与Logistic Regression 及 Matlab 代码

    梯度下降法与Logistic Regression 及 Matlab 代码 前言Logistic回归梯度下降法例子1 xff0c 固定学习率改进1 xff1a 正则化改进2 xff1a 动态学习率查看分类效果不足完整代码 前言 本质是一个求
  • ONOS 控制器安装和app新建和编译

    1 1 ONOS 控制器编译与安装 ONOS 1 8 版本起强制使用 BUCK 构建工具 xff0c 不再使用 maven xff0c 编译和打包方式与旧版本有所区别 步骤 xff1a 配置环境 gt 下代码 gt 编译 gt 运行 配置环
  • SQLyog(navica)连接docker容器中的mysql8.0.12 报错1251或2003解决办法

    使用SQLyog xff08 navicat xff09 远程连接docker容器中的mysql8 0 12 报以下错误 解决办法 xff1a 一 在docker中启动mysql 定义端口号3306 root 64 localhost do
  • TTY 到底是个什么玩意?

    先来回答一道面试题 xff1a 我们知道在终端中有一些常用的快捷键 xff0c Ctrl 43 E 可以移动到行尾 xff0c Ctrl 43 W 可以删除一个单词 xff0c Ctrl 43 B 可以向前移动一个字母 xff0c 按上键可
  • 如何画好一份架构图

    先说答案 画架构图分四步走 xff1a 第一 xff0c 搞清楚要画的架构图的类型 xff1b 第二 xff0c 确认架构图中的关键要素 xff08 比如产品 技术 服务 xff09 xff1b 第三 xff0c 梳理关键要素之间的关联 x
  • NVIDIA Jetson Xavier NX 深度学习相关组件安装

    一 tensorflow的安装 写在前面的牢骚话 xff08 可选择直接跳过 xff09 在写安装tensorflow的教程之前 xff0c 我一定要放出当时我安装tensorflow时所遇到的那些莫名其妙的错误 xff0c 具体错误如下图
  • Python - Decorator(装饰器) - 带参数的

    我们通过以示例来看看带参数的装饰器到底怎么回事 from time import perf counter from functools import wraps def repeated times def outer fn 64 wra
  • 2020塔式起重机司机考试及塔式起重机司机考试软件

    题库来源 xff1a 安全生产模拟考试一点通公众号小程序 2020塔式起重机司机考试及塔式起重机司机考试软件 xff0c 包含塔式起重机司机考试答案解析及塔式起重机司机考试软件练习 由安全生产模拟考试一点通公众号结合国家塔式起重机司机考试最
  • 2020煤炭生产经营单位(安全生产管理人员)操作证考试及煤炭生产经营单位(安全生产管理人员)模拟考试软件

    题库来源 xff1a 安全生产模拟考试一点通公众号小程序 2020煤炭生产经营单位 xff08 安全生产管理人员 xff09 操作证考试及煤炭生产经营单位 xff08 安全生产管理人员 xff09 模拟考试软件 xff0c 包含煤炭生产经营
  • 嵌入式系统 Boot Loader 技术内幕

    内容 xff1a 1 引言 2 Boot Loader 的概念 3 Boot Loader 的主要任务与典型结构框架 4 关于串口终端 5 结束语 关于作者 对于本文的评价 在 Linux 专区还有 xff1a 教程 工具与产品 代码与组件
  • PADS VX2.8 PCB版本的降低方法

    在PCB设计过程中 xff0c 可能会遇到不同版本的PCB文件 xff0c 高版本软件可以兼容低版本 xff0c 反之则不能 为了提高兼容性 xff0c 可以将拿到的高版本PCB文件降低为低版本 xff0c 以配合使用低版本软件打开 打开P

随机推荐

  • Ubuntu16.04 速腾rslidar-32线激光雷达使用详细记录

    0 rslidar 32线激光雷达参数 线束 xff1a 32线波长 xff1a 905nm激光等级 xff1a class1精度 xff1a 5cm xff08 典型值 xff09 测量距离 xff1a 0 2m 200m xff08 目
  • useradd 与 adduser

    useradd 选项 用户名 参数如下 xff1a c comment 指定一段注释性描述 d 目录 指定用户主目录 xff0c 如果此目录不存在 xff0c 则同时使用 m选项 xff0c 可以创建主目录 g 用户组 指定用户所属的用户组
  • Python——sqlalchemy.exc.ArgumentError

    报错信息 xff1a sqlalchemy exc ArgumentError Mapper mapped class XmjbqZby gt xmjbq zby could not assemble any primary key col
  • VirtualBox虚拟机ping不通主机,但是主机可以ping通虚拟机

    解决VirtualBox虚拟机不能ping通宿主机的问题 问题描述 在VirtualBox虚拟中 xff0c 无法ping通宿主机 xff0c 宿主机可以ping通虚拟机 虚拟机的网络已经设置为 桥接网卡 xff0c 也可以正常上网 解决方
  • RTThread-W25Q128的驱动基于SPI和SFUD

    文章目录 前言一 kconfig的配置1 配置对应的SPI和SFUD 二 SFUD的使用W25Q128的读写操作 三 关于写入的问题 前言 本文是一个初学者的学习记录 xff0c 可能有误 SFUD是针对flash的一种通用的组件 xff0
  • RT-Thread 基于QSPI驱动LY68L6400-SRAM

    前言 使用的是RTThread 标准版 xff0c 主控是STM32H743 xff0c SRAM是LY68L6400 xff0c 使用QSPI QSPI和SPI的区别 个人理解最大的区别就是SPI是串行 xff0c 数据输出 xff0c
  • 关于学习RTThread的随笔

    认识操作系统 关于单片机的学习是从51到ARM xff0c 慢慢的接触到了操作系统 xff0c 开始也不明白是什么 xff0c 就跟着原子哥的例程学 xff0c 也不知道哪个好 xff1f 开始学UCOS xff0c 后来又用学了FreeR
  • RT-Thread 串口的使用

    1 配置选用的串口 在kconfig文件中增加ENV的串口选项 xff0c 这边选择的是uart2 menuconfig BSP USING UART bool span class token string 34 Enable UART
  • 关于驱动中景园LCD和LVGL踩的一些坑

    背景介绍 我使用的是中景园的1 3寸 xff0c 240 240的LCD xff0c 主控是STM32L152系列 https item taobao com item htm spm 61 3688y 1 14 16 1916264bJ5
  • 使用物联网卡无法通讯

    在使用阿里云的物联网卡时 xff0c 遇到一个电信卡无法通讯的问题 xff0c 数据只能发不能收 xff0c 后来客服跟踪调查后发现 xff0c 物联网卡有一个IP地址的白名单 xff0c 需要让客服把通讯平台的IP地址加到这个白名单才行
  • ESP32+PIO+LGVL+gui_guider

    简介 本文基于VScode上安装platform插件 xff08 简称PIO xff09 来开发ESP32 xff0c 屏幕显示使用LVGL 43 gui guider 关于VScode上使用platfrom也是一把辛酸泪 很多朋友会安装不
  • ESP32+PIO+LGVL+gui_guider之【BUTTON实体按键】

    LVGL的Button外部按键 这个Button是没有触摸屏的情况下用外部的按键来对应屏幕上的按键 xff0c 比如屏幕上有个确定键 xff0c 你按下外部某个按键 xff0c 屏幕的确定键也相应显示按下 工作原理其实就是LVGL把外部按键
  • KEIL工程报错问题解决记录

    1 no section to be FIRST LAST 在一次下载了别人的工程后 xff08 来自51黑论坛STm32L低功耗测试的一个工程 xff09 xff0c 由于其他工程用的DPF包有所不同 xff0c 记得是按照提示更新了固件
  • Linux——centos7搭建node + Nginx + vue + mysql 的服务安装详细步骤

    一 安装所需的软件 二 进行具体配置 三 使用 以下配置及安装为已运行实测的笔记整理 xff0c 严格按照该步骤进行配置 xff0c 大概率上不会有问题 不懂linux的小白也可配置使用 当然 xff0c 最好还是了解一些linux基本的命
  • ONOS应用示例开发

    ONOS应用示例开发 风继续吹 15 04 09 9239 人围观 本文主要是提供了有关ONOS的基于意图的流量转发应用如何开发 构建及部署等方面的实战经验 xff0c 并且详细讲解了如何在命令行上调用服务的过程 最后 xff0c 介绍了在
  • 测试1234

    String mStaticDns 61 34 static com 34 34 static net 34 34 cdn bcebos com 34 34 pic cn 34 34 pic com 34 34 sina net 34 34
  • ubuntu共享文件夹权限问题

    新建的共享文件夹 xff0c 只有切换成root用户组时才能访问 xff0c 其他用户却没有权限 原因 xff1a 共享文件夹属于vboxsf组 解决方案 xff1a 把当前用户添加到vboxsf组 sudo adduser userNam
  • Bad owner or permissions on .ssh/config的解决

    Bad owner or permissions on ssh config的解决 当为本机配一个固定用户名远程登录某主机时 xff0c 配置了一个config文件 xff0c 但是在执行ssh免密码登录时报如下的错误 xff1a Bad
  • MobiCom‘21

    1 Vaibhav Singh Akarsh Prabhakara Diana Zhang Osman Ya an and Swarun Kumar 2021 A community driven approach to democrati
  • 学习日志之STM32固件库

    对固件库结构的理解 stm32固件库分为4层 xff1a 应用层 xff08 application layer xff09 板级支持包BSP xff08 BSP xff08 board specific package xff09 硬件抽