
STM32四种库对比:寄存器、标准外设库、HAL、LL-51 % ?/ q+ A; ~6 }/ u5 N- e7 Z. y1.我是选择寄存器开发STM32,还是标准外设库呢?1 i) u7 v( {' {5 t' `; a6 ~4 W 2.你有STM32L0标准外设库吗? 3.HAL库和LL库有什么差异?" X/ A, @ Y( f* j% E 。。。, Z+ N7 f5 I$ X3 Y' ~5 j9 c$ a : t& W" V) \7 ^ 下面就来讲讲开发STM32的四种库:- e' u, i. ]% ` STM32Snippets Standard Peripheral Library STM32Cube LL STM32Cube HAL 9 r, A, a# K, g ) i+ R. p7 l6 ~* C4 c 1STM32Snippets# m; k3 X+ X2 p1 `0 w' c! @ 什么是STM32Snippets? STM32Snippets可翻译为“代码片段”、“裁剪”,其实他就是我们常说的“寄存器”开发STM32的底层驱动代码。7 ?0 T4 h6 i6 @# F " k9 z/ S P: k8 J, o, n5 t 比如配置ADC引脚的代码片段:
! H4 r. {, u; R+ T g1 f: r STM32Snippets主要针对底层开发人员,或者从51转过来,直接操作寄存器开发的人员。 是没有经过封装,可见底层寄存器的一套示例代码。/ p( t' s4 P+ }! S/ N" J% s2 o 5 P% S1 i* {1 E$ d6 J+ s 每个STM32系列的100多个片段演示了如何以最小的内存占用有效地使用STM32外围设备。 " t4 a# N* `- C2 D : T1 r: }, `9 \5 F, D 地址: https://www.st.com/en/embedded-software/stm32snippets.html (公号不支持外链接,请复制链接到浏览器打开) ![]() ![]() 同样也提供Keil MDK、 IAR EWARM的工程。6 y& {& l5 J" p" B, w 1 l9 c0 t7 R! ` 2Standard Peripheral Library+ h+ c6 i) z7 @4 f. @/ Z/ V Standard Peripheral Library:简写SPL,也叫标准外设库。 相信学习过STM32的朋友,对标准外设库都不陌生,是一组外围设备的C语言代码集合。(因为现在ST官方主推STM32CubeMX,所以停止了对SPL的更新)- F# _- ^0 S4 Z/ j 7 w }7 p# V, D/ r2 @ ) ^2 e( ^4 f& h* M. \ 标准外设库是在寄存器的基础上进行了一次简单封装,主要是面向过程的嵌入式系统开发人员。 - B& y# Q* T3 u _- U. I& q' c & X% g% |0 b# X. E7 ^% E4 ] 地址:* q' U6 j3 D: I0 i: J- w9 O& K https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html8 j" E6 I9 i# Y( v8 H& \- \9 L ![]() 所以,不要再问:在哪里下载L0的标准外设库了。& p% I' [5 v8 L3 @% B) r& Z; } 0 I9 U8 j0 J6 |. x4 M/ y% ? 6 D6 g- s7 t n- M% X. h 3STM32Cube LL 和 HAL) n* W; I" R" u! b LL:Low-Layer,底层库 4 e' P0 R) |. P2 y9 _7 k, C 9 R5 Z9 A4 _: l4 A {# I* ] HAL:Hardware Abstraction Layer,硬件抽象层库. Y4 y; A' P6 i: G1 @ STM32Cube HAL 和 LL配合STM32CubeMX工具对STM32进行开发。也是目前ST官方主推的一套开发STM32的库。2 g2 h/ T. S7 F( c$ o HAL针对的是具有一定嵌入式基础的开发人员,HAL具有很好的移植性。 LL库相对HAL,具有简单的结构,针对之前从事SPL(标准外设库),或寄存器开发的人员。 0 d% H. R4 V E; h 地址:/ Z5 |3 O6 O; O+ n. X! |0 U- c https://www.st.com/en/development-tools/stm32cubemx.html ![]() & r2 o1 R5 }' e7 R, E" C' z) h6 } 4四种库对比, b% E6 W3 x- Y+ M1 L 来自官方的对比信息,包含可移植性、优化、难易程度等。+ P S% ]$ o' P0 Y& A( k' q% ` ![]() ! H- N* @; z' v/ r5 V p * V8 [4 {# K: W Portability:可移植性 Optimization :优化 Easy:难易程度: L( J9 }9 K; h, V Hardware coverage:硬件覆盖 ' c6 M) c' F" ?6 _2 o 定位: ![]() ![]() 库之间的转移: ![]() 4 Q7 q" Y2 h; Y3 W& }5 N3 \& `5 T . c7 V5 J; S# c/ ^) ]! U) S3 B |