为什么STM32的HAL库那么难用,ST还是要硬推HAL库?

您所在的位置:网站首页 keil5编译慢 为什么STM32的HAL库那么难用,ST还是要硬推HAL库?

为什么STM32的HAL库那么难用,ST还是要硬推HAL库?

2023-04-13 01:57| 来源: 网络整理| 查看: 265

Cubemx加Hal库,开发速度跟开挂一样。就说最近吧,我要做一款38khz红外的应用,之前从来没做过。搭硬件用了一天,然后等打样过来,设计使用的芯片是stm32f030,到手焊完板子是中午,第二天下午,搞完了。要是用标准库或者寄存器,可能我现在还在哪儿摸定时器分频Pwm周期输入捕获中断什么的,用hal库我反正是一天搞定了收发协议,样机直接按设想正确运行了。

我是直接从hal库开始的,标准库有了解过,但是上手做产品就是直接用的Hal库,从来没给我添过麻烦,一直都是cube配置完就直接写bsp,有需要改配置模式,就打开cube配置一下,重新输出一下工程就行,原来的代码全都在。

补充一下,HAL库因为封装了很多层,有些东西搞起来有点麻烦。就比如,在main.c里面修改定时器的占空比,这个是很有需要的吧?但是按照hal库生成的代码,在tim. c里面就要改一些东西,要把一些结构体拎出来,然后extern一下,在其他的. c文件中要先改结构体成员的值,然后调用config函数去配置占空比,这个属实就比较麻烦,而且cube修改过配置以后,重新生成代码还要再去tim. c里面改,很讨厌。但是我想,其实hal库也没规定不能直接操作寄存器对不对?直接在main.c里面修改TIMx->CCR1不就完事了?所以用这个库不代表就所有代码都按它的思维来做,在实时性要求高的地方,直接上寄存器。另外阅读hal库的代码对于自己的编程思维很有好处,至少在调用安全性上,还是很有值得学习的地方的。比如通过结构体封装,然后通过指针传参,追求安全就const一下,这样怎么也比一堆的全局变量安全多了,EE的工程师属实应该学习一下别人的代码规范,不要一味在那说这不方便那不方便,很多时候,其实是自己过于轻视别人的想法,我寻思ST的工程师怎么也比大多数普通工程师来的强。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3