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

(萌新入门)如何从起步阶段开始学习STM32 —— 我应该学习HAL库还是寄存器库?

概念

笔者下面需要介绍的是库寄存器和HAL库两个重要的概念,在各位看完之后,需要决定自己的学习路线到底是学习HAL呢?还是寄存器呢?还是两者都学习呢?

库寄存器

库寄存器就是简单的封装了我们对寄存器的操作,至少,不用咔咔访问结构体去嗯改里面的数据,否则开发效率会低到发指。

库寄存器的特征如下:

  • 低层级:直接操作硬件寄存器,代码与硬件紧密相关。

  • 高效:由于直接操作寄存器,代码执行效率高,资源占用少。

  • 灵活性:我们可以完全控制硬件的每一个细节。但是代价是 —— 需要深入了解硬件手册和寄存器配置,开发难度较大。

  • 可移植性差:代码高度依赖特定硬件,移植到其他平台时需大量修改。

库寄存器的优秀的教学视频自然就属于江科大了STM32入门教程-2023版 细致讲解 中文字幕哔哩哔哩bilibili

HAL库

HAL库是STMicroelectronics为STM32系列微控制器提供的一个硬件抽象层库。使用HAL库可以让我们无缝的移植代码到其他ST家的平台上,它封装了底层寄存器的操作,提供了统一的API接口,简化了开发过程。

  • 高层级:通过API接口操作硬件,开发者无需直接操作寄存器。

  • 易用性:提供了丰富的函数库,简化了外设的配置和控制。

  • 可移植性:代码在不同STM32系列间的移植性较好。

  • 效率较低:由于增加了抽象层,代码执行效率相对较低,资源占用较多。

  • 开发速度快:适合快速开发和原型设计。

HAL库的教程,笔者建议是Keysking的教程,他的教学非常的顶层,基本原理是使用动画演示,非常的直观:

【STM32入门教程-2024】第2集 点灯大师 点亮你的第一颗小灯 | keysking的stm32教程哔哩哔哩bilibili

当然,其他的开发板的供应商,比如说野火/正点原子的视频也是不错的,这里就自行搜索吧!

相关文章:

(萌新入门)如何从起步阶段开始学习STM32 —— 我应该学习HAL库还是寄存器库?

概念 笔者下面需要介绍的是库寄存器和HAL库两个重要的概念,在各位看完之后,需要决定自己的学习路线到底是学习HAL呢?还是寄存器呢?还是两者都学习呢? 库寄存器 库寄存器就是简单的封装了我们对寄存器的操作&#xf…...

Windchill开发-电子仓相关对象信息查询SQL

电子仓相关对象信息查询SQL 一、说明二、数据表信息三、数据表字段说明3.1 HOLDERTOCONTENT3.1.1 对象类型3.1.2 存储类型 3.2 APPLICATIONDATA3.2.1 类别3.2.2 与对象的角色关系3.2.3 存储方式3.2.4 其他字段 3.3 URLDATA3.4 STREAMDATA3.5 FVITEM3.6 FVMOUNT3.6.1 安装状态3.…...

MySQL 数据库定时任务及进阶学习

一、引言 在当今数字化时代,数据管理的高效性和自动化至关重要。MySQL 作为一款广泛应用的开源关系型数据库管理系统,提供了强大的功能来满足各种数据处理需求。其中,定时任务执行功能对于自动化数据操作、维护数据完整性以及优化系统性能具…...

DeepSeek教unity------MessagePack-01

中文:GitCode - 全球开发者的开源社区,开源代码托管平台 MessagePack是C# 的极速 MessagePack 序列化器。它比 MsgPack-Cli 快 10 倍,并且性能超过其他 C# 序列化器。MessagePack for C# 还内置支持 LZ4 压缩——一种极其快速的压缩算法。性能在诸如游戏…...

知识拓展:Python序列化模块 marshal 模块详解

Python marshal 模块学习笔记 1. 简介 marshal 是 Python 的内部序列化格式,主要用于序列化和反序列化 Python 对象。它是 Python 字节码(.pyc文件)使用的序列化格式,比 pickle 更原始和受限,但也更快速和安全。 http…...

leetcode 2684. 矩阵中移动的最大次数

题目如下 数据范围 本题使用常规动态规划就行&#xff0c;不过要注意由于有三个转移的方向&#xff0c;所以我们对dp数组的遍历应该是从上到下 从左到右即按列优先遍历。通过代码 class Solution { public:int maxMoves(vector<vector<int>>& grid) {int …...

机械学习基础-6.更多分类-数据建模与机械智能课程自留

data modeling and machine intelligence - FURTHER CLASSIFICATION 混淆矩阵评估指标&#xff1a;灵敏度和特异度ROC 曲线文字说明部分 AUC&#xff1a;ROC曲线下面积 支持向量机思路补充背景知识点积超平面&#xff08;HYPERPLANES超平面的法向量到超平面的最小距离数据集与超…...

自动化测试实战

http://8.137.19.140:9090/blog_login.htm 账号: lisi 密码: 123456 上面是系统链接 1. 自动化测试的步骤 1.1 编写Web测试用例 1.2 创建空项目添加依赖 然后我们创建一个新的java项目(使用maven管理),然后引入我们的配置文件:屏幕截图,驱动管理,selenium库 <dependency…...

qt QPlainTextEdit总结

QPlainTextEdit 概述 用途&#xff1a;专为处理纯文本设计&#xff0c;适合大文本编辑和简单文本显示&#xff08;如日志、代码编辑器&#xff09;。 特点&#xff1a;相比QTextEdit&#xff0c;轻量高效&#xff0c;支持快速加载和滚动大文件&#xff0c;默认不支持富文本。 …...

AWS SES 邮件服务退信/投诉处理与最佳实践指南

在使用 AWS SES 发送邮件时,合理处理退信和投诉是维护发送声誉的关键。本文将详细介绍 SES 中的退信/投诉处理机制以及相关最佳实践。 一、退信处理机制 © ivwdcwso (ID: u012172506) 1.1 退信类型 在 SES 中,退信分为两种类型: 硬退信(Hard Bounce) 永久性错误,如无效…...

理解WebGPU 中的 GPUAdapter :连接浏览器与 GPU 的桥梁

在 WebGPU 开发中&#xff0c; GPUAdapter 是一个至关重要的对象&#xff0c;它作为浏览器与 GPU 之间的桥梁&#xff0c;为开发者提供了请求 GPU 设备、查询 GPU 特性以及获取适配器信息的能力。本文将详细介绍 GPUAdapter 的核心属性和方法&#xff0c;并通过实际代码…...

rpx和px混用方案

&#xff08;1&#xff09;创建一个全局的样式配置文件&#xff1a; // styles/variables.scss :root {// 基础字体大小--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 18px;// 响应式间距--spacing-xs: 5px;--spacing-sm: 10px;--spacing-…...

光伏设计软件分类:无人机、Unity3D引擎齐上阵

无人机3D设计 无人机可搭载高分辨率光学相机、激光雷达等测绘设备&#xff0c;对目标区域进行全方位、多角度的航拍作业。通过对采集到的影像数据进行导入处理&#xff0c;运用复杂的图像识别算法与三维重建技术&#xff0c;构建出云端实景3D模型&#xff0c;在实景3D模型中进…...

太速科技-616-基于6U VPX XCVU9P+XCZU7EV的双FMC信号处理板卡

基于6U VPX XCVU9PXCZU7EV的双FMC信号处理板卡 一、板卡概述 板卡基于6U VPX标准结构&#xff0c;包含一个XCVU9P 高性能FPGA&#xff0c;一片XCZU7EV FPGA&#xff0c;用于 IO扩展接口&#xff0c;双路HPC FMC扩展高速AD、DA、光纤接口等。是理想应用于高性能数字计算&…...

国产鲲鹏920+欧拉+达梦

1&#xff0c;访问达梦官网 产品下载-达梦数据 1.1&#xff0c;官网没有欧拉的版本&#xff1b; 1.2&#xff0c;拨打客服热线&#xff0c;联系售前单独获取试用版 2&#xff0c;创建鲲鹏920欧拉环境&#xff1a; 2.1&#xff0c;阿里云&#xff1a;没有arm系统 2.2&#xf…...

LeetCode--146. LRU 缓存【Golang中的list】

146. LRU 缓存 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c…...

查看notebook的jupyter token

如果你忘记了jupyter的token&#xff0c;那么你可以命令行登录后台&#xff0c;查看。 jupyter notebook list 把token复制下&#xff0c;贴到网站上即可。jupyter登录页已经提示了。...

vue+springboot+webtrc+websocket实现双人音视频通话会议

前言 最近一些时间我有研究&#xff0c;如何实现一个视频会议功能&#xff0c;但是找了好多资料都不太理想&#xff0c;最终参考了一个文章 WebRTC实现双端音视频聊天&#xff08;Vue3 SpringBoot&#xff09; 只不过&#xff0c;它的实现效果里面只会播放本地的mp4视频文件&…...

什么是高亮环形光源

高亮环形光源是一种常用于机器视觉、工业检测和光学测量的照明设备。其特点是光线均匀、亮度高,并且呈环形分布,能够为被检测物体提供均匀的照明,减少阴影和反光,提高图像采集的质量。 主要特点: 环形设计:光源呈环形分布,适合安装在镜头周围,能够为物体提供均匀的照明…...

2025年3月一区SCI-混沌进化优化算法Chaotic evolution optimization-附Matlab免费代码

引言 本期介绍了一种基于混沌动力学的元启发式算法-混沌进化优化算法Chaotic evolution optimization&#xff0c;CEO。CEO的主要灵感来源于二维离散记忆映射的混沌演化过程。通过利用记忆映射的超混沌特性&#xff0c;对CEO算法进行数学建模&#xff0c;为进化过程引入随机搜…...

AI专著写作大揭秘!实测4款工具,一键生成20万字专著不是梦

对于学术研究者来说&#xff0c;撰写一部学术专著并不是短时间的灵感迸发&#xff0c;而是一场漫长的“持久战”。从选题的构思开始&#xff0c;到逻辑严谨的章节框架&#xff0c;再到每个段落的内容填充和文献的引用校验&#xff0c;每个步骤都充满了挑战。研究者需要在繁忙的…...

JetBrains IDE重置插件终极指南:告别30天试用期限制

JetBrains IDE重置插件终极指南&#xff1a;告别30天试用期限制 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE的30天试用期到期而烦恼吗&#xff1f;ide-eval-resetter项目为你提供了一个简…...

告别RPi.GPIO!用GPIO Zero库5分钟搞定树莓派LED和按键控制(Python3保姆级教程)

树莓派GPIO革命&#xff1a;用GPIO Zero实现优雅的硬件交互开发 在树莓派生态中&#xff0c;硬件交互一直是开发者最关注的核心能力之一。传统RPi.GPIO库虽然功能强大&#xff0c;但其底层操作方式往往让开发者陷入繁琐的引脚管理和状态维护中。GPIO Zero库的出现彻底改变了这一…...

构建文化响应型AI:从算法偏见根源到公平性技术实践

1. 文化响应型AI&#xff1a;为何它不再是“锦上添花”&#xff0c;而是“生存必需”如果你最近用过任何主流的大语言模型或者图像生成工具&#xff0c;试着让它描绘一个“婚礼场景”或者“成功的企业家”&#xff0c;你大概率会得到一个非常“标准”的答案——这个标准&#x…...

基于Stable Diffusion与AnimateDiff的AI动画生成实战指南

1. 项目概述&#xff1a;从文本到动画的生成革命最近在探索AIGC&#xff08;人工智能生成内容&#xff09;的落地场景时&#xff0c;我深度体验了一个名为smartcraze/promt-to-animation的开源项目。这个名字直译过来就是“提示词到动画”&#xff0c;听起来简单&#xff0c;但…...

本地部署ChatGPT接口工具:msveshnikov/chatgpt项目实战指南

1. 项目概述&#xff1a;一个被低估的本地化ChatGPT接口工具如果你正在寻找一个能让你在本地环境、私有服务器上&#xff0c;甚至是在一个没有稳定网络连接的环境中&#xff0c;稳定、高效地调用类ChatGPT大语言模型能力的工具&#xff0c;那么msveshnikov/chatgpt这个项目绝对…...

Seraphine:英雄联盟玩家的智能数据助手与BP自动化工具

Seraphine&#xff1a;英雄联盟玩家的智能数据助手与BP自动化工具 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 你还在为每次进入游戏前手动查询队友对手战绩而烦恼吗&#xff1f;还在为BP阶段的手忙脚乱而…...

CANN/metadef自动映射函数

AutoMappingFn 【免费下载链接】metadef Ascend Metadata Definition 项目地址: https://gitcode.com/cann/metadef 函数功能 自动映射回调函数。 函数原型 Status AutoMappingFn(const google::protobuf::Message *op_src, ge::Operator &op)参数说明 参数 输入…...

ARM7TDMI-S处理器架构与嵌入式系统优化指南

1. ARM7TDMI-S处理器架构深度解析 ARM7TDMI-S是ARM公司推出的经典32位RISC处理器&#xff0c;采用冯诺依曼架构设计。作为ARMv4T架构的代表性实现&#xff0c;它在嵌入式系统领域具有里程碑意义。这款处理器最显著的特点是支持双指令集——标准的32位ARM指令集和压缩的16位Thum…...

基于MCP与ReceiptConverter的票据自动化解析与AI集成方案

1. 项目概述&#xff1a;让AI助手直接“看懂”你的票据 如果你和我一样&#xff0c;经常需要处理一堆杂乱的发票、收据&#xff0c;然后手动把它们录入到表格或者记账软件里&#xff0c;那你肯定知道这活儿有多烦人。一张张拍照、整理、对着模糊的小票辨认商品和金额&#xff…...