您好,今日西西来为大家解答以上的问题。标准库和hal库使用时候的区别,hal库和标准库的区别相信很多小伙伴还不知道,现在让我们一起来看看吧!
1、别人写的 你参考一下: 半年前接触 STM32,刚开始 MCU 用的 32F1,库用的标准外设库 3.5,写过一些简单的东西。
2、 再后来发现 ST 还有一个软件叫做 STM32 CUBE MX,可以自动的生成初始化程序,对于我这个 32 新手来说无疑是天降福音!终于不用为繁琐的配置而苦恼了(其实就是自己对各项配置不熟,而且没有自己积累的程序可以 Ctrl C + Ctrl V)。
3、 虽然 CUBE 用的是 ST 新出的 HAL 库,与以前的 标准外设库完全不兼容,甚至基本的 I/O 操作都变了,会让习惯了 标准外设库的人很苦恼。
4、但是我对标准外设库也不是很熟,而且 CUBE 的界面化设计真的让 配置工程变得很方便,再加上它还有一个类似于 FPGA 的引脚分配界面,让资源分配,PCB 布局布线也方便了不少,于是我选择了用 CUBE ,用 HAL 库。
5、 很早就开始的写 32 的朋友有不少,他们也试过 HAL 库,可最后无一例外都选择了继续使用标准外设库。
6、他们表示完全不习惯 HAL 库,另外 HAL 库不太好,毕竟是自动生成的配置,没有自己手动配置的来得熟悉来得透彻,谁知道软件是怎么给你配置的工程。
7、另外 CUBE 就是给那些不会写 32 的人用的(ST 的官方的说法似乎也是 HAL 是为了方便做嵌入式相关且对底层不熟的人设计的,但想不通他为何要把两个库做得不兼容)。
8、 前面一直在画 PCB ,调 PCB ,做机械之类的,没有写程序。
9、最近又开始写 32,现在用的 MCU 是 32F4,库是 HAL/F4库 1.6.0。
10、可是我发现我连 GPIO 的上拉输出都实现不了,无论如何 I/O 始终默认输出低电平(操作 I/O可以实现电平跳变),这个问题我昨天查了一天,从库到最底层的寄存器都看了,可没发现什么问题。
11、周围用 HAL 库的就我一个。
12、 有些无奈了,难道 HAL 库真有什么问题吗?如果真有这么明显的问题,ST 官方肯定早就发现了。
13、 已经下好了标准外设库,打算换标准外设库,工程从头到尾都自己配置,这样出了问题也更方便找。
14、 可是我始终有一点想不明白,既然 ST 官方在推 HAL 库,那肯定也有他的道理,我们也应该勇于接受新事物,为何身边的朋友却都不愿意接纳 HAL 库。
本文就为大家分享到这里,希望小伙伴们会喜欢。