当前位置: 首页 > news >正文

【STM32】

STM32

  • 1 CMSIS
    • 1.1 概述
    • 1.2 CMSIS 应用程序文件描述
  • 2 库
    • 2.1 简介
    • 2.2 标准外设库(standrd Peripheral Libraries)
    • 2.3 HAL 库
      • 2.3.1 目录结构
      • 2.3.2 HAL库API函数和变量的命名规则
      • 2.3.3 HAL库对寄存器位操作的相关宏定义
      • 2.3.4 HAL库回调函数
      • 2.3.5 HAL使用注意事项
    • 2.3 LL 库
  • 3 STM32Cube
    • 3.1 概述
    • 3.2 固件包文件夹简介
    • 3.3 STM32CubeMX
      • 3.3.1 概述
  • 4 STM32CubeIDE
  • 5

1 CMSIS

1.1 概述

ARM Cortex™ 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层(英文原文为:a vendor-independent hardware abstraction layer for the Cortex-M processor series and defines generic tool interfaces–来自ARM官方定义)。 使用CMSIS,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间
在这里插入图片描述

1.2 CMSIS 应用程序文件描述

在这里插入图片描述

2 库

2.1 简介

st为方便用户开发stm32芯片提供三种库:
1.标准外设库(standrd Peripheral Libraries)
2.HAL库(硬件抽象层)
3.LL库 Low Layer 基本上就是寄存操作的方式实现的库。
在这里插入图片描述

2.2 标准外设库(standrd Peripheral Libraries)

2.3 HAL 库

2.3.1 目录结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3.2 HAL库API函数和变量的命名规则

在这里插入图片描述

2.3.3 HAL库对寄存器位操作的相关宏定义

在这里插入图片描述

2.3.4 HAL库回调函数

在这里插入图片描述

2.3.5 HAL使用注意事项

在这里插入图片描述

2.3 LL 库

3 STM32Cube

3.1 概述

STM32Cube是ST公司开发的一套生态系统,致力于使STM32的开发变的更简单,并且100%开源免费。
STM32Cube生态系统包括两大部分:

  • PC软件工具:STM32CubeMX、STM32CubeIDE、STM32CubeProgrammer、STM32CubeMnitor等
  • 软件库:STM32 Embedded Software bricks

st官方下载
方式一:st官方下载地址: https://www.st.com/zh/embedded-software/stm32cubef2.html
方式二:st官方搜索STM32Cube
在这里插入图片描述
在这里插入图片描述

3.2 固件包文件夹简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 STM32CubeMX

下载地址: https://www.st.com/en/development-tools/stm32cubemx.html

3.3.1 概述

STM32CubeMX 是用于 32 位 ARM Cortex STM32 微控制器的图形工具。它允许对 STM32 微控制器和微处理器进行非常简单的配置,生成初始化 C 代码,还可以通过一步一步的操作为 Arm Cortex-M 内核或 Arm Cortex-A core 生成部分 Linux 设备树。它是 STMCube 生态系统的一部分,且可以作为独立应用程序或作为 Eclipse 插件集成在开发环境(STM32CubeIDE)中。
STM32CubeMX 适用于任何STM32设备的配置工具 该工具用Java编写,所以可以在Windows、Linux、Mac上运行,它可以使用户通过图形用户界面对微控制器进行配置,然后为Cortex-M内核生成初始化C代码,或者为Cortex-A内核生成Linux设备树源(下面两张图对STM32CubeMX的作用作以诠释):

4 STM32CubeIDE

STM32CubeIDE 集成开发环境 该工具是基于Eclipse+GNU C/C++工具链的,除了基本的编辑和编译功能,还包括代码编译报告功能和高级调试功能,另外,该IDE还集成了CubeMX。

5

相关文章:

【STM32】

STM32 1 CMSIS1.1 概述1.2 CMSIS 应用程序文件描述 2 库2.1 简介2.2 标准外设库(standrd Peripheral Libraries)2.3 HAL 库2.3.1 目录结构2.3.2 HAL库API函数和变量的命名规则2.3.3 HAL库对寄存器位操作的相关宏定义2.3.4 HAL库回调函数2.3.5 HAL使用注意…...

U盘不可以访问的维护

u盘打不开,可按下图,设置:winR→gpedit.msc;配置“管理模板”→“系统”→“可移动存储访问”→“所有可移动存储类”。 然后,选择“未配置”,如下图...

SpringCloud 微服务全栈体系(十三)

第十一章 分布式搜索引擎 elasticsearch 二、索引库操作 索引库就类似数据库表,mapping 映射就类似表的结构。 我们要向 es 中存储数据,必须先创建“库”和“表”。 1. mapping 映射属性 mapping 是对索引库中文档的约束,常见的 mapping …...

ROC 曲线详解

前言 ROC 曲线是一种坐标图式的分析工具,是由二战中的电子和雷达工程师发明的,发明之初是用来侦测敌军飞机、船舰,后来被应用于医学、生物学、犯罪心理学。 如今,ROC 曲线已经被广泛应用于机器学习领域的模型评估,说…...

113.路径总和II

原题链接&#xff1a;113.路径总和II 需复刷 思路&#xff1a; 跟112.路径总和不同&#xff0c;该题是要你找出所有相同的路径&#xff0c;那么此时就要注意存储&#xff0c;递归和回溯了。 全代码&#xff1a; class Solution { public:vector<vector<int>> re…...

【Linux】WSL安装Kali及基本操作

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍WSL安装Kali及基本操作。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路…...

Linux基础开发工具之调试器gdb

文章目录 1.编译成的可调试的debug版本1.1gcc test.c -o testdebug -g1.2readelf -S testdebug | grep -i debug 2.调试指令2.0quit退出2.1list/l/l 数字: 显示代码2.2run/r运行2.3断点相关1. break num/b num: 设置2. info b: 查看3. d index: 删除4. n: F10逐过程5. p 变量名…...

Apache APISIX 的 Admin API 默认访问令牌漏洞(CVE-2020-13945)漏洞复现

漏洞描述 Apache APISIX 是一个动态、实时、高性能的 API 网关。Apache APISIX 有一个默认的内置 API 令牌&#xff0c;可用于访问所有 admin API&#xff0c;通过 2.x 版本中添加的参数导致远程执行 LUA 代码。 漏洞环境及利用 启动docker环境 访问9080端口 通过 admin api…...

Clickhouse学习笔记(3)—— Clickhouse表引擎

前言&#xff1a; 有关Clickhouse的前置知识详见&#xff1a; 1.ClickHouse的安装启动_clickhouse后台启动_THE WHY的博客-CSDN博客 2.ClickHouse目录结构_clickhouse 目录结构-CSDN博客 Cickhouse创建表时必须指定表引擎 表引擎&#xff08;即表的类型&#xff09;决定了&…...

WebSocket是什么以及其与HTTP的区别

新钛云服已累计为您分享774篇技术干货 HTTP协议 HTTP是单向的&#xff0c;客户端发送请求&#xff0c;服务器发送响应。举个例子&#xff0c;当用户向服务器发送请求时&#xff0c;该请求采用HTTP或HTTPS的形式&#xff0c;在接收到请求后&#xff0c;服务器将响应发送给客户端…...

Flutter 实战:构建跨平台应用

文章目录 一、简介二、开发环境搭建三、实战案例&#xff1a;开发一个简单的天气应用1. 项目创建2. 界面设计3. 数据获取4. 实现数据获取和处理5. 界面展示6. 添加动态效果和交互7. 添加网络错误处理8. 添加刷新功能9. 添加定位功能10. 添加通知功能11. 添加数据持久化功能 《F…...

Python中68个内置函数的使用与归类

前言 在Python解释器中内置的、可以直接使用的函数。这些函数不需要额外的导入或安装&#xff0c;可以直接在Python代码中调用。Python内置函数包括了很多常用的功能&#xff0c;比如对数据类型的操作、数学运算、字符串处理、文件操作等。一些常见的内置函数包括print()、len…...

AGV無人搬送車控制系统Pytorn

import tkinter as tk import Main import monitoring # メインウィンドウを作成 root tk.Tk() root.title("AGV無人搬送車控制系统 ver1.0.0") # ウィンドウサイズを固定 root.geometry("501x340") root.resizable(False, False) # サイズ変更を…...

使用MVS-GaN HEMT紧凑模型促进基于GaN的射频和高电压电路设计

标题&#xff1a;Facilitation of GaN-Based RF- and HV-Circuit Designs Using MVS-GaN HEMT Compact Model 来源&#xff1a;IEEE TRANSACTIONS ON ELECTRON DEVICES&#xff08;19年&#xff09; 摘要—本文阐述了基于物理的紧凑器件模型在研究器件行为细微差异对电路和系统…...

Android13分享热点设置安全性为wpa3

Android13分享热点设置安全性为wpa3 文章目录 Android13分享热点设置安全性为wpa3一、前言热点WPA3加密类型是需要底层硬件支持的。Wifi WPA3 和 热点 WPA3 是不一样的分享初衷 二、代码分析1、应用代码中热点设置WPA3 加密格式报错部分日志信息&#xff1a; 2、系统代码分析&a…...

2023-11-12 LeetCode每日一题(Range 模块)

2023-03-29每日一题 一、题目编号 715. Range 模块二、题目链接 点击跳转到题目位置 三、题目描述 Range模块是跟踪数字范围的模块。设计一个数据结构来跟踪表示为 半开区间 的范围并查询它们。 半开区间 [left, right) 表示所有 left < x < right 的实数 x 。 实…...

【六袆 - Framework】Angular-framework;前端框架Angular发展的由来0001;

Angular发展介绍&#xff0c;Angular17新特性 官方文档Angular框架发展的由来何为结构化、模块化 Angular17新特性 English unit Embarking on the journey of deep technical learning requires a well-structured approach, applicable to any programming language. The key…...

JAVA集合学习

一、结构 List和Set继承了Collection接口&#xff0c;Collection继承了Iterable Object类是所有类的根类&#xff0c;包括集合类&#xff0c;集合类中的元素通常是对象&#xff0c;继承了Object类中的一些基本方法&#xff0c;例如toString()、equals()、hashCode()。 Collect…...

【Linux】语言层面缓冲区的刷新问题以及简易模拟实现

文章目录 前言一、缓冲区刷新方法分类a.无缓冲--直接刷新b.行缓冲--不刷新&#xff0c;直到碰到\n才刷新c.全缓冲--缓冲区满了才刷新 二、 缓冲区的常见刷新问题1.问题2.刷新本质 三、模拟实现1.Mystdio.h2.Mystdio.c3.main.c 前言 我们接下来要谈论的是我们语言层面的缓冲区&…...

Mac安装与配置eclipse

目录 一、安装Java&#xff1a;Mac环境配置&#xff08;Java&#xff09;----使用bash_profile进行配置&#xff08;附下载地址&#xff09; 二、下载和安装eclipse 1、进入eclipse的官网 (1)、点击“Download Packages ”​编辑 (2)、找到macOS选择符合自己电脑的框架选项…...

一道KMP统考真题彻底讲透:nextval与滑动距离的本质寄

一、各自优势和对比 这是检索出来的数据&#xff0c;据说是根据第三方评测与企业数据&#xff0c;三款产品在代码生成质量上各有侧重&#xff1a; 产品 语言优势 场景亮点 核心差异 百度 Comate C核心代码质量第一&#xff1b;Python首生成率达92.3% SQL生成准确率提升35%&…...

【大模型容灾备份黄金标准】:20年SRE专家亲授3层冗余架构设计与RTO<30秒实战方案

第一章&#xff1a;大模型工程化容灾备份方案设计 2026奇点智能技术大会(https://ml-summit.org) 大模型工程化过程中&#xff0c;模型权重、训练检查点、推理缓存及元数据的高可用性与一致性是系统稳定运行的核心前提。容灾备份不能仅依赖传统周期快照&#xff0c;而需融合多…...

5.2《嵌入式Linux驱动开发实战:从GPIO到UART》

001、开篇:Linux驱动开发全景图与开发环境搭建 凌晨两点,实验室的示波器还亮着。同事盯着屏幕上杂乱的UART波形嘟囔:“这板子怎么就是收不到数据?”我凑过去看了一眼内核日志,一行ttyS0: too much work for irq4让他愣了几秒——这就是驱动问题最典型的开场。嵌入式Linux…...

FAST Planner实战:在ROS Noetic上从零搭建无人机避障仿真环境(附完整代码)

FAST Planner实战&#xff1a;在ROS Noetic上从零搭建无人机避障仿真环境&#xff08;附完整代码&#xff09; 当你第一次接触FAST Planner这个强大的无人机轨迹规划框架时&#xff0c;是否曾被复杂的依赖关系和编译错误困扰&#xff1f;本文将带你穿越重重障碍&#xff0c;从…...

终极免费AI字幕工具VideoCaptioner:3分钟学会智能视频字幕处理

终极免费AI字幕工具VideoCaptioner&#xff1a;3分钟学会智能视频字幕处理 【免费下载链接】VideoCaptioner &#x1f3ac; 卡卡字幕助手 | VideoCaptioner - 基于 LLM 的智能字幕助手 - 视频字幕生成、断句、校正、字幕翻译全流程处理&#xff01;- A powered tool for easy a…...

SOA架构实战:从企业服务总线(ESB)到微服务的演进之路

SOA架构实战&#xff1a;从企业服务总线(ESB)到微服务的演进之路 当企业IT系统从单体架构迈向分布式架构时&#xff0c;SOA&#xff08;面向服务的架构&#xff09;曾是最重要的技术范式之一。然而随着云计算和容器技术的普及&#xff0c;传统的ESB&#xff08;企业服务总线&am…...

FinalBurn Neo:开启你的街机复古游戏宝库之旅

FinalBurn Neo&#xff1a;开启你的街机复古游戏宝库之旅 【免费下载链接】FBNeo FinalBurn Neo - We are Team FBNeo. 项目地址: https://gitcode.com/gh_mirrors/fb/FBNeo 你是否曾怀念那些在街机厅度过的美好时光&#xff1f;那些投币、摇杆、按键的清脆声响&#xf…...

完全免费!跨平台开源音乐播放器LX Music桌面版终极使用指南

完全免费&#xff01;跨平台开源音乐播放器LX Music桌面版终极使用指南 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 你是否厌倦了各大音乐平台的会员限制&#xff1f;想要一款…...

终极指南:如何免费解锁Cursor AI Pro功能,告别试用限制

终极指南&#xff1a;如何免费解锁Cursor AI Pro功能&#xff0c;告别试用限制 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reac…...

FPGA实战:从真值表到硬件实现的译码器与优先编码器

1. 数字电路设计的核心基石&#xff1a;真值表与布尔代数 第一次接触FPGA开发时&#xff0c;我被Verilog代码和硬件描述弄得晕头转向&#xff0c;直到导师指着实验板上的LED灯说&#xff1a;"所有复杂的数字电路&#xff0c;本质上都是开关的组合"。这句话让我突然明…...