|
STM32四种库对比:寄存器、标准外设库、HAL、LL-51 ( n1 ]" X3 K3 [! C# o4 Y1.我是选择寄存器开发STM32,还是标准外设库呢?: A( e# Y0 S& d8 {8 C! S 2.你有STM32L0标准外设库吗? 3.HAL库和LL库有什么差异?8 ^9 |7 a: I" _/ T% H3 ^ 。。。 . ~9 f/ ^, ~7 x( I% E8 C# \2 V4 y# w 下面就来讲讲开发STM32的四种库:9 K5 \8 e1 R. r& d1 p STM32Snippets Standard Peripheral Library2 X( y# M6 a+ E* ]- @ STM32Cube LL STM32Cube HAL 9 h4 g' d/ I9 D9 r * Q8 ^( l# F. r- o( q' ]& i 1STM32Snippets 什么是STM32Snippets? STM32Snippets可翻译为“代码片段”、“裁剪”,其实他就是我们常说的“寄存器”开发STM32的底层驱动代码。$ O0 v3 r5 R4 T ; v, |1 R/ M8 V I3 x: s1 i 比如配置ADC引脚的代码片段:
' ^0 T1 U: a5 L3 I+ M STM32Snippets主要针对底层开发人员,或者从51转过来,直接操作寄存器开发的人员。 是没有经过封装,可见底层寄存器的一套示例代码。 每个STM32系列的100多个片段演示了如何以最小的内存占用有效地使用STM32外围设备。9 @% G% M; j+ ]( j& _ * k1 Y5 A4 C4 }" u5 _# [1 J" A! T * Y4 j, j$ D* K" @+ o, p3 o d 地址:; ?- C: C' I- Y# D& D# _% _ https://www.st.com/en/embedded-software/stm32snippets.html" u7 A' ?+ j5 b# d" R8 } (公号不支持外链接,请复制链接到浏览器打开)
同样也提供Keil MDK、 IAR EWARM的工程。# T% E1 W+ K) s5 Q8 |, X* B 1 `: Q* d! h$ d. e' H2 N. n! I # F1 \3 } ]$ d' Z 2Standard Peripheral Library Standard Peripheral Library:简写SPL,也叫标准外设库。 相信学习过STM32的朋友,对标准外设库都不陌生,是一组外围设备的C语言代码集合。(因为现在ST官方主推STM32CubeMX,所以停止了对SPL的更新): O- ? |/ _# \( H$ m1 j7 Z , k5 Z. X& q/ `) ^ 3 X! I! p+ I; v$ D/ ?9 Z 标准外设库是在寄存器的基础上进行了一次简单封装,主要是面向过程的嵌入式系统开发人员。 & Q4 p+ O3 @7 w 地址: https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html
4 w. ~- q# g5 g/ t( M) c4 J 所以,不要再问:在哪里下载L0的标准外设库了。( Z' B, L7 t: k / g' Z6 ~7 W! h! H& ^% x9 \ 0 O( j Z2 O3 p/ Z# q5 }& I( c4 G 3STM32Cube LL 和 HAL LL:Low-Layer,底层库9 f0 V# U8 q% G) V$ |. r3 ] ( y1 t* Y) ^: w/ F7 Y) A : A; X1 L$ }: p9 T4 p HAL:Hardware Abstraction Layer,硬件抽象层库 STM32Cube HAL 和 LL配合STM32CubeMX工具对STM32进行开发。也是目前ST官方主推的一套开发STM32的库。 ! n* T9 u0 B1 B6 w* }1 N: `$ [ HAL针对的是具有一定嵌入式基础的开发人员,HAL具有很好的移植性。) L! `6 j0 @* ~: L4 e LL库相对HAL,具有简单的结构,针对之前从事SPL(标准外设库),或寄存器开发的人员。 ! ]1 }+ }8 L4 ~/ o x! ^ 地址:& N' K( B1 T2 H, e2 u) B$ b1 l f1 z0 P https://www.st.com/en/development-tools/stm32cubemx.html: E* d5 [5 O# f- _
3 E3 T7 W& h. i( V H ; G+ Y& m0 b1 p: y 4四种库对比 来自官方的对比信息,包含可移植性、优化、难易程度等。4 \; l7 Z. L6 _0 h: @9 ?
Portability:可移植性 Optimization :优化 Easy:难易程度 Hardware coverage:硬件覆盖 ! w" x% Q7 f2 a" K 定位:
库之间的转移:0 o! C% @+ a% B2 O" {
0 j/ o+ ^/ m! |( e- x2 `! I " ?6 i" L& R% x6 Y- I: O; f2 K* l* U4 q 4 H$ X7 m4 C. l, t- k 1 q7 ~; |3 m( C% d' ~/ | |
微信公众号
手机版