学STM32选标准库还是HAL库?

原创 无际单片机编程 2024-10-29 11:08

关注公众号,回复“入门资料”获取单片机入门到高级开挂教程

 开发板带你入门,我们带你飞

文 | 无际(微信:2777492857)

全文约1945字,阅读大约需要 分钟

我学STM32的时候,stm32cubeMX还没推出,HAL库还没出来,主要以标准库为准。

下面讲下我学习STM32的经历,从陌生到应用到项目大概花了2-3周,相信99%的人都能通过这种方法,快速把STM32玩起来。

我是项目需要,才接触的STM32,也是基于同事的介绍,在此之前用的是NXP单片机,需要手动配置寄存器,ARM7的单片机,不要说自己去配置了,光看以前工程师配置好的代码,头皮都发麻。

同事说STM32不用自己配置,价格也很有性价比,正好接了个外单,是做太阳能热水器的控制板,主控芯片我就选了STM32。

项目也比较急(其实那个老板也不急),主要是我想快点做完,赶紧拿钱,做外单这种事,耗的时间越长越亏。

现在这个项目的屎山代码还在,2012年做的了。

   

那会浮躁啊, 一心只想快点把项目做出来交差。

所以根本没心情像以前学51单片机那样,把每个寄存器每个位基本都研究过一遍。

我就直接买了个STM32开发板,然后项目用到什么外设,我就先在开发板上调,开发板没有教程,只有每个外设的例程,我就打开这个例程先研究下,先在开发板上调通,然后改改参数,再移植到项目里去调。

我刚开始接触固件库,和大家感受应该是一样的,点个灯而已,整个工程怎么这么庞大复杂,为什么配置这个结构体参数,就能把外设用起来,这些结构体是怎么跟外设联系起来的?

我也尝试过用51单片机的玩法,沿着相应寄存器每个位的配置,奈何当初编程基础还不行,顺着源代码都找不到源头。

如果把这些研究明白再做项目,那黄花菜都凉了,不管了,先把功能实现再说,照着开发板配套例程,照葫芦画瓢的方式。

我用到的外设也就GPIO、ADC、UART、Timer、DMA,协议有SPI、IIC。

在有参考例程的基础上,改改结构体参数,大概2-3周就把这些外设全跑通了。

接下来的时间就是做项目的业务功能了。

说出来都有点尴尬,项目都交付了,我连STM32的时钟树,NVIC都没怎么搞明白,反正按照例程来,这些不懂,也不影响使用。

可能就跟开车的原理一样,你不一定非得把车的内部结构,发动机原理这些整明白了,才能学会开车。

而是会踩刹车油门,会掌握方向盘,就可以把车开走了。

剩下的就是熟练度的问题,这得多上路跑跑,各种路段都跑过了,各种停车场都停过了,自然就是老司机了。         

 

其实这也是学STM32最佳的方法,芯片内部虽然复杂,涉及几百个寄存器,但我们只是使用者的角色,先用起来,只要把库关键函数,参数学明白,就可以了。

剩下的就是不断做项目,把它应用在各种领域,等经验丰富了,再回过头来深究,很多以前想破脑袋都想不明白的,就扩然开朗了。

下面聊聊先学标准库还是HAL库的问题。

虽然现在ST对于新型号,不再提供Hal库了,但这么多年了,我一直用标准库在做产品,因为不一定会用到最新型号,像STM32F103C8T6,用得很多。    

对于工程师来说,最忌讳的就是重复造轮子,所以这些库,我们一经在项目中验证,就不会随便去改,免得出问题给自己找麻烦。

我对Cube其实没啥好感,大概6,7年前,想尝试下用stm32cubeMX会不会更方便,没配置好,然后把我桌面的东西全删光了,工作都差点丢了。

我觉得这是一个BUG,哪怕用户操作再不对,也不应该删用户的东西。 

不知道现在还有没有这个问题,反正我一直没用过,一直在用标准库。

我觉得学标准库还是Hal库,并不重要,库的底层处理逻辑都是一样的,都是通过配置寄存器使用外设。

标准库更直观,更接近硬件,代码执行效率更高。

HAL库跨芯片兼容性更好,一些错误的处理更完善。

如果为了就业,可以先学标准库,如果为了做项目,可以直接学HAL库,开发效率更高。

不同的库只是代码封装形式不同而已,不管怎么封装,对应的外设,都是配置那几个参数,比如GPIO有端口、引脚、速率、模式等。    

本质你还是把编程功底打扎实,因为库里面涉及到大量的位运算、结构体、枚举、指针、回调函数这些。

你把玩熟了,不管什么库,都能很快地适应。

想提高编程功底,还是得多做项目,多接触一些优秀的代码思维和架构,而不是反复地去看基础教程。

end


下面是更多无际原创个人成长经历、行业经验、技术干货

1.电子工程师是怎样的成长之路?10年5000字总结

2.如何快速看懂别人的代码和思维

3.单片机开发项目全局变量太多怎么管理?

4.C语言开发单片机为什么大多数都采用全局变量的形式

5.单片机怎么实现模块化编程?实用程度让人发指!

6.c语言回调函数的使用及实际作用详解

7.手把手教你c语言队列实现代码,通俗易懂超详细!

8.c语言指针用法详解,通俗易懂超详细!

无际单片机编程 单片机编程、全栈孵化。
评论 (0)
  • 在工业控制与数据采集领域,高精度的AD采集和实时显示至关重要。今天,我们就来基于瑞芯微RK3568J + FPGA国产平台深入探讨以下,它是如何实现该功能的。适用开发环境如下:Windows开发环境:Windows 7 64bit、Windows 10 64bitLinux开发环境:Ubuntu18.04.4 64bit、VMware15.5.5U-Boot:U-Boot-2017.09Kernel:Linux-4.19.232、Linux-RT-4.19.232LinuxSDK:LinuxSD
    Tronlong 2025-03-28 10:14 145浏览
  • 在智能家居领域,无线门铃正朝着高集成度、低功耗、强抗干扰的方向发展。 WTN6040F 和 WT588F02B 两款语音芯片,凭借其 内置EV1527编解码协议 和 免MCU设计 的独特优势,为无线门铃开发提供了革命性解决方案。本文将深入解析这两款芯片的技术特性、应用场景及落地价值。一、无线门铃市场痛点与芯片方案优势1.1 行业核心痛点系统复杂:传统方案需MCU+射频模块+语音芯片组合,BOM成本高功耗瓶颈:待机电流
    广州唯创电子 2025-03-31 09:06 56浏览
  • 真空容器的材料选择取决于其应用场景(如科研、工业、医疗)、真空等级(低真空、高真空、超高真空)以及环境条件(温度、压力、化学腐蚀等)。以下是常见材料及其优缺点分析:1. 不锈钢(如304、316L)优点:耐腐蚀性强:316L含钼,耐酸碱和高温氧化,适合高真空和腐蚀性环境。高强度:机械性能稳定,可承受高压差和外部冲击。低放气率:经电解抛光或镀镍处理后,表面放气率极低,适合超高真空系统(如粒子加速器、半导体镀膜设备)。易加工:可焊接、铸造,适合复杂结构设计。缺点:重量大:大型容器运输和安装成本高。磁
    锦正茂科技 2025-03-29 10:52 44浏览
  • 本文介绍OpenHarmony5.0 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!鸿蒙北向开发主要侧重于应用层的开发,如APP开发、用户界面设计等,更多地关注用户体验、应用性能优化、上层业务逻辑的实现,需要开发者具备基本的编程知识、对操作系统原理的简单理解,以及一定的UI设计感。由触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,支持开源鸿蒙OpenHarmony3.2至5.0系统,适合鸿蒙开发入门学习。下载与安装开发工具点下面链接下载:
    Industio_触觉智能 2025-03-28 18:16 155浏览
  • 在智能语音设备开发中,高音量输出是许多场景的核心需求,例如安防警报、工业设备提示、户外广播等。 WT588F02BP-14S 和 WTN6040FP-14S 两款语音芯片,凭借其内置的 D类功放 和 3W大功率输出 能力,成为高音量场景的理想选择。本文将从 性能参数、应用场景、设计要点 三大维度,全面解析这两款芯片的选型策略。一、核心参数对比与选型决策参数WT588F02BP-14SWTN6040FP-14S输出功率3W@4Ω(THD<1%)3W@4Ω(THD<0.8%)功
    广州唯创电子 2025-03-28 09:15 99浏览
  • 一、真空容器的定义与工作原理真空容器是一种能够创造并保持一定真空度的密闭容器。其工作原理通常涉及抽气系统,该系统能够逐渐抽出容器内部的气体分子,从而降低容器内的气压,形成真空环境。在这个过程中,容器的体积并不会因抽气而改变,但容器内的压力会随着气体的抽出而逐渐降低。二、真空容器并非恒压系统真空容器并非一个恒压系统。恒压系统指的是在外部环境变化时,系统内部压力能够保持相对稳定。然而,在真空容器中,随着气体的不断抽出,内部压力会持续降低,直至达到所需的真空度。因此,真空容器内部的压力是变化的,而非恒
    锦正茂科技 2025-03-29 10:23 122浏览
  • 在智能语音交互设备开发中,系统响应速度直接影响用户体验。WT588F系列语音芯片凭借其灵活的架构设计,在响应效率方面表现出色。本文将深入解析该芯片从接收指令到音频输出的全过程,并揭示不同工作模式下的时间性能差异。一、核心处理流程与时序分解1.1 典型指令执行路径指令接收 → 协议解析 → 存储寻址 → 数据读取 → 数模转换 → 音频输出1.2 关键阶段时间分布(典型值)处理阶段PWM模式耗时DAC模式耗时外挂Flash模式耗时指令解析2-3ms2-3ms3-5ms存储寻址1ms1ms5-10m
    广州唯创电子 2025-03-31 09:26 87浏览
  • 3月27日,长虹中玖闪光超高剂量率电子射线放射治疗系统(e-Flash)临床试验项目在四川大学华西医院正式启动,标志着该项目正式进入临床试验阶段。这不仅是我国医学技术领域的一项重大突破,更是我国在高端医疗设备研发和应用方面的重要里程碑。e-Flash放射治疗系统适用于哪些病症,治疗周期为多久?会不会产生副作用?治疗费用高不高……随着超高剂量率电子射线放射治疗系统(e-Flash)正式进入临床试验阶段,社会各界对该项目的实施情况尤为关注。对此,中国工程院院士范国滨,以及四川大学华西医院、四川省肿瘤
    华尔街科技眼 2025-03-28 20:26 223浏览
  • Shinco音响拆解 一年一次的面包板社区的拆解活动拉开帷幕了。板友们开始大显身手了,拆解各种闲置的宝贝。把各自的设计原理和拆解的感悟一一向电子爱好者展示。产品使用了什么方案,用了什么芯片,能否有更优的方案等等。不仅让拆解的人员了解和深入探索在其中。还可以让网友们学习电子方面的相关知识。今天我也向各位拆解一个产品--- Shinco音响(如下图)。 当产品连接上电脑的耳机孔和USB孔时,它会发出“开机,音频输入模式”的语音播报,。告诉用户它已经进入音响外放模式。3.5mm耳机扣接收电脑音频信号。
    zhusx123 2025-03-30 15:42 68浏览
  •        随着智能驾驶向L3级及以上迈进,系统对实时性的要求已逼近极限。例如,自动紧急制动(AEB)需在50毫秒内完成感知、决策到执行的全链路响应,多传感器数据同步误差需小于10微秒。然而,传统基于Linux-RT的方案在混合任务处理中存在天然缺陷——其最大中断延迟高达200微秒,且多任务并发时易引发优先级反转问题。据《2024年智能汽车电子架构白皮书》统计,超60%的车企因实时性不足被迫推迟舱驾一体化项目落地。为旌电子给出的破局之道,是采用R5F(实
    中科领创 2025-03-29 11:55 181浏览
  • 文/杜杰编辑/cc孙聪颖‍3月11日,美国总统特朗普,将自费8万美元购买的特斯拉Model S,开进了白宫。特朗普此举,绝非偶然随性,而是有着鲜明的主观意图,处处彰显出一种刻意托举的姿态 。特朗普也毫不讳言,希望他的购买能推动特斯拉的发展。作为全球电动车鼻祖,特斯拉曾凭借创新理念与先进技术,开辟电动汽车新时代,引领行业发展潮流。然而当下,这家行业先驱正深陷困境,面临着前所未有的挑战。就连“钢铁侠”马斯克自己都在采访时表示“非常困难”,的确是需要美国总统伸手拉一把了。马斯克踏入白宫的那一刻,特斯拉
    华尔街科技眼 2025-03-28 20:44 169浏览
  • 本文介绍瑞芯微RK356X系列复用接口配置的方法,基于触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。复用接口介绍由下图可知,红圈内容当前引脚可配置为SPI0或者PWM0功能。由标准系统固件以及相关系统手册可得,当前接口默认配置为SPI0功能:console:/ # ls dev/spidev0.0dev/spidev0.0再由原理图可知当前GPIO为GPIO0_C3
    Industio_触觉智能 2025-03-28 18:14 109浏览
  • 真空容器内部并非wan全没有压强,而是压强极低,接近于零。真空状态下的压强与容器内外气体的分子数量、温度以及容器本身的性质有关。一、真空与压强的基本概念真空指的是一个空间内不存在物质或物质极少的状态,通常用于描述容器或系统中气体的稀薄程度。压强则是单位面积上所受正压力的大小,常用于描述气体、液体等流体对容器壁的作用力。二、真空状态下的压强特点在真空状态下,容器内部的气体分子数量极少,因此它们对容器壁的作用力也相应减小。这导致真空容器内部的压强远低于大气压强,甚至接近于零。然而,由于技术限制和物理
    锦正茂科技 2025-03-29 10:16 124浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦