news 2026/10/18 13:40:10

浅谈本人大一开学两个月STM32单片机的学习历程(上)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
浅谈本人大一开学两个月STM32单片机的学习历程(上)

摘要:本文是作者学习STM32的阶段性总结,分为两篇博客。第一篇主要介绍了解STM32的契机与学习过程,并详细对比了标准库、寄存器开发与HAL库的优劣,最终给出了先学标准库再转HAL库的双库结合学习路线;第二篇将分享学习中遇到的困难、AI与Agent的合理使用,以及日常记录的意义。本文重点讲述第一篇内容,为后续学习提供参考。

这个标题分两篇博客。

第一篇包括:

一.了解STM32及我学习的原因和大致过程

二.标准库和HAL库的学习选择

1.标注库和寄存器开发

2.HAL库开发

3.双库结合

第二篇包括:

三.学习中遇到的困难

1.概念理解与记忆

2.外设硬件和代码软件

3.内驱和迷茫

四.AI及Agent的合理使用

1.AI和Agent两者的区别

2.合理的使用

五.日常学习过程中记录的意义(视频和文章)

一.了解STM32及我学习的原因和大致过程

STM32,全称为:ST 32-bit Microcontroller是由ST公司以ARM公司设计的32位芯片架构为基础,在外围增添了一些如:GPIO, USART, 定时器, ADC, DMA等等外设后封装成为的单片机。因其运行的编程代码就是我在暑假学习的C语言,所以我在网上了解到STM32之后便在军训期间开始跟随B站上的视频学习(作者学习STM32的日常)。

刚开始学习的时候我是跟随江科大STM32学习,并买了他的正版的板子( 进200是真贵:((( ,但售后做得好),但两个星期的军训结束之后我了解到了苍穹战队(Robo Master),很感兴趣。但学长们说现在队里都用的是HAL库,然后我就转头去看野火小智HAL库的教学视频一直学到现在。

二.标准库和HAL库的学习选择

1.标注库和寄存器开发

标准库的现状:1.几乎所有的外设都需要自己手动去写初始化代码,或是复制粘贴之前的相关外设的初始化配置代码;2.ST公司已经不再对标准库进行维护和更新了;3.当前几乎所有领域都不在用标准库......所以因为种种原因,标准库已逐渐退出STM32工程开发。但是学习标准库也不是说没有作用和意义,标准库对函数的分装更接近寄存器底层,所以通过学习标准库我们对STM32底层的寄存器的理解更加深刻(STM32代码的本质就是在控制寄存器各个位上的值),且许多国产芯片的的代码库也是在模仿标准库。那此时就会有人问:标准库不还是对寄存器进行了分装吗,那么为什么不直接学习寄存器开发呢?第一是寄存器开发太过麻烦;第二是要进行寄存器开发就一定需要不断地查询STM32官方手册,也会拖慢开发效率;第三是当前的寄存器开发的教学视频实在是太少了,很难做到系统性的学习;第四是其对于开发者的能力要求很高。但寄存器开发也有优点,就是其代码最少运行的效率最快。值得一提的是,当前B站上STM32教程播放量最高的江科大视频仍然使用标准库开发。

2.HAL库开发

HAL库是当前ST公司大力发展的代码库,其不仅函数分装更加完善,而且用ST公司官方的STM32开发软件(CubeMX和CubeIDE)可以自动生成外设初始化代码,极大的提升了开发效率。其次HAL库的函数分装很好,使开发时代码的编写更加方便。且网上也有大量的HAL库开发资料。但是HAL库也有缺点,第一就是对于比较大的工程,用CubeMX或CubeIDE生成的代码文件夹不方便管理,最好也像标准库那样自己建立一个工程模版;第二就是其代码生成太过于方便以至于很多人会忽略对外设及代码含义的理解;最后就是其运行速度是慢与标注库和寄存器开发的,但这个差距我还没感觉到,主要是因为我建立的工程太小了(理论上一定有差距)。

3.双库结合

结合上述我的学习路线是先学习江科大的标准库,但并不学完,在学到USART串口通讯的时候转去学习野火小智的HAL库。下面讲解一下原因:1.我认为学习时最好还是对其本质有一定的了解才方便又进一步的扩展;2.如果你认认真真地学完江科大的标准库USART串口通讯前的内容,那你对STM32的外设及其运行逻辑会有一个比较清晰的认识,此时转去学更方便的HAL库会更加容易上手(一周时间内就可以);3.再看快速过一遍野火小智HAL库前面你已学过的内容即使在让我们熟悉软件之间的配合(我用的是CubeMX和Keil),也是在复习巩固前面的知识。而我在学习HAL库的时候没有看keyskingSTM32HAL库开发,是因为,第一我感觉其节奏实在是太快,我跟不上(可能我脑子转不过来)。其次是其用的是CubeIDE软件开发,而苍穹战队推荐用CubeMX加CLion(我之后会学)开发。所以我最终选择的是野火小智。

作者寄语:

我说学习的过程并不是最完美的,但我认为是比较合理且兼顾多个方面。在学习时自己也要去多多思考自己学习的方式和顺序是否有问题?有无更好的?以使我们在下一个学习阶段可以更新我们的学习方式和顺序。我在学习STM32的时候也有到了许多问题,最终也要一一解决。下一篇博客让我来谈谈这些困难及如何解决吧!

感谢你的阅读,如果感觉还不错,就给我一个点赞、收藏加评论,制作不易,感谢支持!!!

博主的一个月学习成果(蓝牙小车)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 13:39:55

初级探索——用 TaoToken 统一 Key 跑通 sqlite3 数据库连接与游标事务

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/18 13:37:34

因子分析相关矩阵非正定:诊断、修复与避坑指南

简介:这份文档资料聚焦因子分析中常见的非正定矩阵问题,面向使用SPSS进行多元统计分析的社科、经济、心理及医学领域研究者与数据分析学习者。资源以真实案例为主线,完整呈现某运营商无线增值业务31个省份、35个变量的因子分析过程&#xff0…

作者头像 李华
网站建设 2026/10/18 13:33:53

Ubuntu下为OpenClaw配置sudo免密:安全白名单实操指南

第一次在 Ubuntu 上让 OpenClaw(就是那只大龙虾)自动跑任务时,我的想法很简单:既然它能帮我执行命令,那让它顺手重启一下服务、装个软件、更新一下系统文件,应该都是基础操作。结果真正落地就翻车了——Ope…

作者头像 李华
网站建设 2026/10/18 13:32:12

Python生成混沌波形:从奇怪吸引子到信号仿真

简介:这份PDF资源定位非常明确:用Python实现并绘制多种经典混沌映射的波形,面向机器学习、信号处理、自动控制等方向的开发者与科研人员,也适合初学非线性动力学的研究生结合代码入门。资源围绕Python语言展开,将混沌映…

作者头像 李华
网站建设 2026/10/18 13:31:34

葡萄成熟度YOLO目标检测数据集:格式解析与训练避坑指南

简介:面向计算机视觉与农业智能化方向的算法工程师、科研人员及高校学生,这份数据集提供超过7000张葡萄成熟度标注样本,类别覆盖未熟、半熟、成熟等4个等级,并已统一转换成YOLO格式,可直接用于YOLOv5、YOLOv8等全系列模…

作者头像 李华
网站建设 2026/10/18 13:27:41

VCS 实验包深度拆解:PLI/VPI 接口与 C 模型仿真实践

简介:这份资源是面向IC设计验证初学者与进阶工程师的VCS实验资料包,围绕Synopsys VCS这一Verilog/SystemVerilog编译仿真工具展开,帮助读者通过动手实验掌握从编译、仿真到覆盖率分析的完整验证流程。压缩包共137个文件,约628KB&a…

作者头像 李华