|
1.STM32Snippets 什么是STM32Snippets?, r8 a+ [7 R" ?2 P- Q * b0 ~ h% H6 g3 J! f " G) Z/ R& P* m8 h. D8 t; y STM32Snippets可翻译为“代码片段”、“裁剪”,其实他就是我们常说的“寄存器”开发STM32的底层驱动代码。 + Q" r/ J4 z1 K/ F9 D ; m% W( U, N5 f, J" R i 比如配置ADC引脚的代码片段:# p" i6 N7 N4 f' _3 ^0 s
4 Y7 L2 y4 }4 e/ L9 s& W" d5 Q STM32Snippets是高度优化的示例代码集合,使用符合CMSIS的直接寄存器访问来减少代码开销,从而在各种应用程序中最大化STM32 MCUs的性能。 & B: \1 R% n: ` G STM32Snippets主要针对底层开发人员,或者从51转过来,直接操作寄存器开发的人员。 是没有经过封装,可见底层寄存器的一套示例代码。( a4 g) C+ ~, R1 F " s. u: P5 a. c5 x( | 每个STM32系列的100多个片段演示了如何以最小的内存占用有效地使用STM32外围设备。: |' `& U, A% Z2 n * S, g, k8 B: s2 j, m, I$ b 地址:, T1 z1 }* t0 D https://www.st.com/en/embedded-software/stm32snippets.html8 K/ {' j8 W L5 s8 B (公号不支持外链接,请复制链接到浏览器打开)
STM32Snippets目前官方只提供:STM32F0和L0的示例代码包。 提供的示例代码有点类似标准外设库风格,给大家看下F0的代码包:6 A2 V( }% ]9 U# M) e# t
同样也提供Keil MDK、 IAR EWARM的工程。 # g2 C# E7 C2 o7 g; D$ p- N 2Standard Peripheral Library3 U- V; v, V8 c: b2 Q8 |6 t Standard Peripheral Library:简写SPL,也叫标准外设库。. h& s0 f# p! R 2 V4 R) f7 H2 b4 J1 e1 n9 y 相信学习过STM32的朋友,对标准外设库都不陌生,是一组外围设备的C语言代码集合。(因为现在ST官方主推STM32CubeMX,所以停止了对SPL的更新) ! I- a S7 G! M! h, q% j8 D 标准外设库是在寄存器的基础上进行了一次简单封装,主要是面向过程的嵌入式系统开发人员。 # L O u |" c9 x8 o1 e' y 地址:: m3 a4 x# ~1 U0 t* L- B https://www.st.com/en/embedded-s ... eral-libraries.html# j3 t; H& @1 n! G
目前标准外设库支持STM32F0、 F1、 F2、 F3、 F4、 L1, 不支持F7、 H7、 MP1、L0、 L4、 L5、 G0、G4等后面推出的系列。 所以,不要再问:在哪里下载L0的标准外设库了。3 A0 e4 k( w; v! \+ x6 a 4 @. u" l0 y1 o6 u 3STM32Cube LL 和 HAL! ], ~5 ?' F+ p& V# B LL:Low-Layer,底层库 HAL:Hardware Abstraction Layer,硬件抽象层库" ^4 e2 ?2 S0 V" f 7 y# \* p) ~; z5 t% N% v STM32Cube HAL 和 LL配合STM32CubeMX工具对STM32进行开发。也是目前ST官方主推的一套开发STM32的库。 * c- O2 r" Q/ X/ M0 h1 i HAL针对的是具有一定嵌入式基础的开发人员,HAL具有很好的移植性。 LL库相对HAL,具有简单的结构,针对之前从事SPL(标准外设库),或寄存器开发的人员。 地址: https://www.st.com/en/development-tools/stm32cubemx.html
STM32Cube HAL 和 LL是目前官方主推,并重点维护和更新的库,也建议大家都学习一下。而且新出来的型号(如L5、G4等系列)没有标准外设库,只有STM32Cube HAL 和 LL库了。 4四种库对比 来自官方的对比信息,包含可移植性、优化、难易程度等。7 r2 P% n( K) S$ Y7 Y# @
其中: ' k: q3 R0 ]0 Q% V8 ~9 Q" z Portability:可移植性# e8 `5 q% T; k7 }8 ~* j/ R 3 Y. n5 {% o; M Optimization :优化" a, b5 w8 ~. f) s" Z Easy:难易程度( S4 Y7 ~5 t, O7 f# C* `- D% E 6 y3 n% g) D, R Hardware coverage:硬件覆盖 定位:% @/ h; s5 Z1 g; X" F5 W7 j
支持器件:6 Q9 I Y* `( }% {
最近新增了STM32Cube MP1,官方没有统计上。6 `+ n9 T; P8 A# c1 i5 i5 m ! g6 X) a! y! j) L4 B$ p 库之间的转移:8 N+ M( x3 D. g& C* S0 ^- N* w6 W! D
本文就到这里,希望以上内容对你有所帮助!" [5 Z$ f$ N4 [2 J/ F- M0 U& ]/ j% ] |
微信公众号
手机版