STM32四种库对比:寄存器、标准外设库、HAL、LL-51 1.我是选择寄存器开发STM32,还是标准外设库呢?/ ~' k8 k, P# j4 j) K' J( S j: V 2.你有STM32L0标准外设库吗? 3.HAL库和LL库有什么差异?% n, } c" e' s) X' r1 B) s 。。。3 i5 U% j4 M! t/ A# o9 z* L 6 \8 w: k' C9 C5 I- u2 ?, y " B, \ {, i$ `6 y' l/ G 下面就来讲讲开发STM32的四种库:1 P1 V# J! E( z4 U8 p4 ]4 q STM32Snippets; ]3 x: l; v5 k' M4 s Standard Peripheral Library, _% B4 U5 u# g9 y% Q* f% ^6 b i STM32Cube LL E- U/ `0 Y3 W" o# G2 g5 O STM32Cube HAL " ^1 M2 I) s/ M6 ^8 W 1STM32Snippets" f# \; Q! U% d. W2 k: I 什么是STM32Snippets? STM32Snippets可翻译为“代码片段”、“裁剪”,其实他就是我们常说的“寄存器”开发STM32的底层驱动代码。 2 L- c" }2 N* j5 c, g$ p3 X0 n7 `# Y 比如配置ADC引脚的代码片段:
4 X5 _( I# q0 t2 e ( I" s% H8 k# c( b4 W Z" ^9 N STM32Snippets主要针对底层开发人员,或者从51转过来,直接操作寄存器开发的人员。 是没有经过封装,可见底层寄存器的一套示例代码。 / `" H, L: A( i' {1 d 每个STM32系列的100多个片段演示了如何以最小的内存占用有效地使用STM32外围设备。0 C* S! A- V5 Z, } z* N ) `! {2 B9 X* t' s y8 _2 s 地址:9 @6 g* N! b4 V7 w* q+ j1 s2 I) P https://www.st.com/en/embedded-software/stm32snippets.html (公号不支持外链接,请复制链接到浏览器打开) 3 V' L0 t' W# ]' Y! p4 c 同样也提供Keil MDK、 IAR EWARM的工程。) Q! Y4 I: ^: ]! C # A' x& ]- O$ V/ X0 }- y" u" u - {0 o' i# Q4 Q5 S5 |3 Z6 C8 z' j 2Standard Peripheral Library Standard Peripheral Library:简写SPL,也叫标准外设库。5 Z1 h; _ P2 L, Q' q: L3 x. [ . _1 ]- m6 ~2 K% O' ]) x) r 相信学习过STM32的朋友,对标准外设库都不陌生,是一组外围设备的C语言代码集合。(因为现在ST官方主推STM32CubeMX,所以停止了对SPL的更新)* `3 F5 u8 y# n: w0 k9 h - M! R4 Q/ o m( P' c. t5 j 标准外设库是在寄存器的基础上进行了一次简单封装,主要是面向过程的嵌入式系统开发人员。3 Z, q/ p: u& {: b; v: L; \" c + H2 ?. I* c, { 地址: https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html ; P' T7 E0 }1 K" E; D4 R8 N: ^, O5 _# }" _ 所以,不要再问:在哪里下载L0的标准外设库了。+ O# l. j W$ e6 j9 S7 m$ v1 I + o7 r! J; t4 \9 i8 V 3STM32Cube LL 和 HAL% ~5 P+ t6 b* L) l0 m3 _ LL:Low-Layer,底层库- o! Z1 u! r: h9 p 1 G7 g) g( J$ @; `7 T" k, p# X3 h $ j! F9 z7 v, J) ~8 P- G HAL:Hardware Abstraction Layer,硬件抽象层库 STM32Cube HAL 和 LL配合STM32CubeMX工具对STM32进行开发。也是目前ST官方主推的一套开发STM32的库。. n" @3 j4 n9 G$ {) { HAL针对的是具有一定嵌入式基础的开发人员,HAL具有很好的移植性。 ( j- F ]- c! b6 b* E LL库相对HAL,具有简单的结构,针对之前从事SPL(标准外设库),或寄存器开发的人员。8 F# p3 e1 p1 E# m4 ~ 地址:' x0 I( H: j( V8 A7 L6 k4 ]4 c, Z https://www.st.com/en/development-tools/stm32cubemx.html % C" L7 x- V7 d7 w( A5 G% _( P 4四种库对比 来自官方的对比信息,包含可移植性、优化、难易程度等。$ p% n( a: S s) n" \" j2 G0 A1 D . e8 j! P8 S- b, V) r' t9 {1 K! o Portability:可移植性 Optimization :优化 Easy:难易程度" e# e9 p P7 X4 a Hardware coverage:硬件覆盖1 o! n0 T+ {- Z * B0 j. B3 p( o! W y$ l3 u 定位:9 t5 s. y% M. b7 F, \! C 库之间的转移:' V* ?+ t; ~1 z0 h7 ^ % K7 t& ?& L6 C8 R ) p+ X! ]1 _/ [, ~ ?: k2 c! } |