新手学STM32的话,先学标准库还是HAL库?

server/2024/10/23 10:25:32/

大家好,我是麦鸽,最近有网友提问

用STM32的话,是学标准库还是HAL库?

对于新手,我想说,不要和自己过不去,一开始不要搞得太难,要循序渐进。

新手经常会问的问题,先学51还是STM32,

或者之前有网友提问,写PC软件是学MFC还是Qt?

其实诸如此类的问题,都不能忽略一个问题就是学习曲线,是否对初学者友好。然后再看后续是否再值得深入学习,是否有学习的价值。

对于单片机而言,标准库还是HAL库,只不过是操作硬件的中间件而已,我们不需要再去生硬地去查芯片手册,去配置寄存器,可以更快地搞定底层的配置,集中精力搞定应用部分的开发。

43d6bfa449466605e2ad15245c059e83.png
image

单片机开发通常是这样架构,或者会再跑个RTOS,一般裸机开发,我们会把一些硬件模块写成单独的驱动模块,向上提供接口给应用层。

而这里会操作到一些芯片的资源,就可以通过调用固件库里的接口,比如配置GPIO,硬件I2C和SPI,或者中断和定时器,使用库函数,或者HAL库,一条函数就够了,自己配置寄存器可能需要十几条语句,而且配置寄存器的话,如果有点粗心配置错了,那么中间所花费的调试时间,也会很长。

  • 直接寄存器配置,代码效率高,开发效率低;

  • 使用标准库,中等代码效率,开发效率中等;

  • 使用HAL库,中间冗余代码会更多,多占用一部分系统性能,但是开发效率高;

另外,STM32的标准库貌似已经不在更新了,如果作为学习的话,也是可以的,学习资源还是很多的。

如果直接学HAL库,也没问题,学习资源也很多。比如CUBEMX直接支持图形化配置了。

关键不管学习哪一个库,不能只停留在表面。

换个库,或者换个硬件平台,就啥都不会了,这样还是不行。其实通过学习标准库,或者学习HAL库,去熟悉STM32这个平台,例如;

通用的一些外设,比如ADC,UART,I2C或者SPI等等;常用的中断,定时器中断,外部中断,如何触发方式;

去了解这些库的封装方式。

调试的时候,可以调入底层去看。到后面我们其实会发现,如果换一个硬件平台,或者换一个库,本质还是相同的,无非是对底层的近一步封装,多看看官方提供的Demo程序,学会自己移植,增加新的功能。

遇到硬件Bug的时候,还是要Debug到底层,对着芯片手册去排查,到这一步,那么你的开发水平其实也算不错了的。实在解决不了,再找原厂的FAE去解决哈。慢慢地,开发水平就提高了。

-END-


往期推荐:点击图片即可跳转阅读

往期推荐

判了,应该三年

看到这100多个软硬件开源项目,真是爽爆了

我这个经验好找嵌入式的工作吗?

学计算机的女生后来都怎么样了?


http://www.ppmy.cn/server/134151.html

相关文章

Java面试题库——反射机制

1.Java中什么是反射? 是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法; 并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。2…

linux介绍与基本指令

前言 本次博客将会讲解linux的来源历史、linux操作系统的理解以及它的一些基本指令。 1.linux的介绍 linux的来源 linux的来源最初还是要说到unix操作系统的。 1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作…

华为配置 之 Console线路配置

目录 简介: 知识点: 配置Console线路密码 1.密码认证模式 2.AAA认证模式 知识点: 总结: 简介: 使用PC模拟器与路由器相连(与交换机相连原理一样),在关机状态下,使用…

Java学习笔记(八)

AuthorizationManager AuthorizationManager 是 Spring Security 中用于处理授权的核心接口之一。它负责决定某个特定请求是否被允许访问特定资源。Spring Security 通过这个接口来实现复杂的授权逻辑,以确保用户在系统中拥有适当的权限。 AuthorizationManager接…

【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (七):MongoDB的设置

本项目旨在学习如何快速使用 nodejs 开发后端api,并为以后开展其他项目的开启提供简易的后端模版。(非后端工程师) 由于文档是代码写完之后,为了记录项目中需要注意的技术点,因此文档的叙述方式并非开发顺序&#xff0…

3D虚拟服装试穿技术:迈向元宇宙与AR电商的新时代

随着电子商务的不断进化,消费者对于在线购物体验的需求也在不断提升。在这样的背景下,3D虚拟服装试穿技术正逐渐成为连接现实世界与数字世界的桥梁,为用户带来前所未有的沉浸式购物体验。本文将介绍一种创新的3D虚拟服装试穿系统——GS-VTON,它旨在克服现有技术局限,并提供…

Flutter Container组件

Over the past few years, I’ve been fortunate to collaborate with interior designers, and there’s a distinct flair to their approach to crafting captivating interiors. It’s not just about arranging furniture randomly; they meticulously plan layouts, sele…

液态神经网络 LNN

神经网络 (NN) 是 机器学习 模仿人脑结构和运算能力以从训练数据中识别模式的算法。 通过处理和传输信息的互连人工神经元网络,神经网络可以执行复杂的任务,例如 人脸识别, 自然语言理解,以及无需人工协助的预测分析。 尽管神经网络是一种强…