你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32Cube介绍经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-30 18:26
在菜单栏里逐级找到:“Tools & Software” -> "Ecosystems" -> "STM32Cube Ecosystem",然后点开。
1 ~% H* N- W. `: n; h3 V) y
+ H& m  L! A) Z& q: j9 j2 ?STM32Cube系统是一个用于STM32的控制器和处理器芯片的完整的软件解决方案。目的是为用户使用STM32芯片找到完整的和免费的开发环境,同时也使用其他IDE的用户,比如Keil或iAR,也能方便的和这个系统里的组件集成到一起。1 W+ J  M  E$ I+ O  }
- w/ H7 e' X! W/ i  @* Y
简单的说STM32Cube是一个软件工具和嵌入式软件库的组合。2 ?( y$ B: s/ r. h& T; V: ^& j. N
' }3 F( y. {4 q0 z% E" c
- 一整套PC软件工具,来解决完整的项目开发周期中的各种需求。
& W4 x) r" T9 v3 _2 H5 H1 F% J

3 E0 l# S& ^5 ~5 E - 一些嵌入式软件库,用来在STM32芯片上实现各种功能,从MCU外设驱动到面向应用的高级特性。9 j% g8 B% l$ V* F# m

( P! ^8 V; H5 e/ V# Y, DCube的寓意是魔方,有很多个小方块组成。如下图:
  {# Q; R7 [- m# I4 B2 [* W! Q% h7 [! w. f; v& W2 ]/ U
Inside the STM32Cube ecosystem! D1 ?# i" P$ l& Q6 |2 L' R% R
& \' Q. `3 k9 X
20210828112526565.png
  p: h! I, M/ Y: e: \# ~2 H% ~; ~9 ^6 ~# `7 C- C. @
, O: y4 H+ k5 Z9 j( _
右边的Azure RTOS,是不是没听过,我之前也只知道用的最多是免费的FreeRTOS。
, }+ v" J+ u% t
# W  ?; l! f* \5 B; i那这个Azure RTOS,就是之前的ThreadX,被微软收购并开源了。ThreadX是收费的RTOS系统,性能上更强大。我也是才上网查了下才知道,2019年就收购拉。3 K. @5 A! W: V# J1 n
8 s1 g+ |6 n' a6 r( j0 _
如此一来,这个优秀的RTOS就代替FreeRTOS,集成进了STM32Cube系统中。3 L, Z4 m7 [' g2 F- B: N4 P+ J
$ U6 i6 z( C& C* W
A. STM32Cube软件工具套件可以在各个开发阶段助力开发者:4 y% {6 ]8 ~; Y1 r/ b

/ C# y; L5 L0 h
- STM32CubeMX, STM32设备配置工具. 用图形化的界面工具,为Cortex-M芯片生成初始化代码,为Cortex-A芯片生成Linux Device Tree。
4 Q3 R2 W" V9 _3 B. g
. M1 D6 V# |7 ?7 K4 ^1 q6 m8 o
- STM32CubeIDE, 一个集成开发环境,基于开源的Eclipse工具和GNU C/C++ toolchain。  并能更好的和其他Cube工具配合,比如方便集成CubeMX自动生成的初始化代码。不过大家可能用的比较多还是IAR和Keil。
# B4 k% i+ w1 u/ N
) p4 R+ O" o% ]( b9 o
- STM32CubeProgrammer, 一个烧写工具。它提供了一个简单有效的环境,来读、写和验证片内存储和片外存储,支持广泛的通讯方式:JTAG, SWD, UART, USB DFU, I2C, SPI, CAN, etc.
4 X, `! f9 d0 Q. c# |7 X: s6 O6 t2 J) L  f2 o' o" s8 q8 R, |2 H
- STM32CubeMonitor系列工具。强大的监视哦工具,用来帮助开发者功耗的优化有实时性要求的应用的行为和性能。
: V4 I4 P; X2 q4 I3 s9 R& G' g9 q
# I" i. j. W9 b( x. {( b
B. STM32Cube嵌入式软件库帮助开发者加快开发:4 ^4 m0 t& {8 s0 ^% m2 p9 a6 u

/ `( p5 I2 P% U9 T  A; _6 k
- STM32Cube MCU and MPU 芯片支持包, 各个STM32系列芯片专用的
1 u5 {6 C6 N3 e* m
1 |: Y* M9 g8 k! l) M3 }6 C
这些包提供了STM32片上外设的操作实现和接口。包括HAL层的驱动,中间件软件框架和大量的示例,很多真实案例的项目可供参考。- {' C, X  U/ \; p! m; G
- F% `# p/ L% p2 z0 Q& l
- STM32Cube扩展包, 在一些应用方案中使用。
  l- D2 G) Q+ G( s) ]5 a! e! c. G( y3 U+ F
从ST自有或经过许可的第三方合作伙伴,提供可扩展包,增强STM32 Cube工具软件的功能。* R/ e9 T$ M/ Y! \9 n- H
# }# j9 ^* M: ?' M- h
通过A+B,STM32Cube, 为开发者提供了一个综合的节省时间的方案,包含的工具和软件库,简单好用易集成,更利于商用。
9 n* K9 {) ^* C: i
: j$ a, w) O' L
- 使用free and open-source software (FOSS),No copyleft licenses terms。
( l- h& a8 A/ H2 a- b  `: |4 X! C1 X/ a) J# u. t. l/ X/ v2 }
- 这些工具和软件由ST开发,都是免费的。各种扩展包也可在官网直接下载,免费共享。
+ I- b2 V8 W' b/ ^) _
3 c- u) g9 C8 ~" K9 P  `0 d. ]
这些软件库,在发布之前都经过测试,并遵循良好的代码规范,比如MISRA, code checkers和validation reports等。
# }% |4 j1 ?. G
1 N( V7 k  `; |4 q3 u
A. Software Development Tools# d* x$ ^1 U$ ~4 `7 \8 v/ _- u( @

/ P) O2 z& {  O
相关的STM32Cube的强大工具,在各个开发阶段都能堪以大用,并可以单独使用。# C+ V: m/ H" X

9 ^. N8 T7 [" r; S
20210828112525106.png . t2 g  w' D% q& M1 @! Q! @! j, ~

& P  e% p6 ~# M/ C* t
; k; B/ k0 s0 U7 ?
B. Embedded Software
3 o; z, O! F2 W! h
5 o' T0 |4 L4 G
B.1 STM32Cube MCU Packages
2 D8 j8 t5 T$ z& r( |8 z" E3 l/ [; g. y' o" L0 C
包括片上外设驱动,还有第三方软件框架。
) s/ X. {( \0 x  f( d/ G  K
$ q* E7 @1 A& U' j
芯片支持包里包含的驱动分两种,一种使Low-Layer API,是性能优化版本。一种是可移植的Hardware Abstract Layer (HAL)API。
+ M! E3 J6 Z) Y5 ^7 Q' h4 B4 F" n
可以在Github上查看STM32Cube嵌入式软件支持包:
9 r- O8 i6 o0 `/ P. v

/ Q( e$ k; Z3 S& x注意,这表里现在还都用的是原来的FreeRTOS。% S5 B9 T% _$ h) U# g

; C+ s& s0 t5 h/ w
20210828112525550.png + _. |3 y; m: a& E
% k/ C$ g, I# n- B* a
B.2 STM32Cube MCU Packages embedding the Azure RTOS middleware suite:
) j: p' z+ G& Y* Z% p" m! a6 D0 p: r0 y2 B" r8 d) |6 o
下面是应用了Azure RTOS的STM32芯片:
  ?& P8 U) |( k, l; Y$ j2 x7 v7 Z! m
20210828112525881.png ) P2 V; h* ^+ G- ^
9 g. L* `3 Y* z/ |* K2 Z  d$ P
B.3 STM32Cube Expansion Packages" r( ?# r9 t8 d
" d8 t! C- n7 J0 z* }- L/ @
还有一些扩展包,作为STM32Cube MCU包的补充,在某些应用领域比如传感器、电源管理、音频和NFC等,提供一些特殊的应用案例。' B+ `. l  D, t! G, @4 ~  g
) {6 m6 K, o, e$ v" k3 m. F
得益于STM32的良好生态,有ST和认证伙伴所提供的扩展包持续增长,在集成的开发环境中包含了丰富的参考项目案例。/ v1 m8 h- P. U5 V! I' o
; q6 Q6 z& ?7 s8 V' b8 A6 [
这些扩展包增强了STM32CubeMX和STM32CubeIDE的功能,使开发者能更好的进行软件设计。
& {9 o" V$ w5 F/ V! ~2 p& \8 q" U1 v: p7 [. h0 f; D$ e  e2 ]
=========================================================== 3 L8 }, T6 B" t, N2 ^  u1 i: T
STM32CubeMX
; k' P3 w8 w/ H5 _/ D) L方便我们配置芯片,使用图形化的方式,很多工作大大简化。
! I3 i9 b% K7 o# g; F& F: Z, m8 J+ m4 f/ Z比如,之前配个GPIO要查芯片手册,看寄存器怎么操作,而现在只要在界面上选中这个端子,然后选择相应的配置模式即可,然后就自动生成硬件初始化设置代码。
6 Z, a6 |- [5 X+ ~  c% m3 R2 G如果是Linux系统,就是生成Device Tree。
, ^( O2 X& \4 h) {& b; S$ l' f2 `! Q8 O' G
所以,这个工具就是一个硬件配置工具,简化了我们初始化硬件的软件设计和编码工作。/ N5 w, F( Y/ W7 y9 o

2 Q0 g- E) W. Y5 k  u( x
操作方法如下:, k% Q4 j& ?9 w! V1 Z
第一步,选择相应的芯片或开发平台。5 F* V; C! E1 O- e& \
第二步,对MCU,要配置GPIO(Pinout with automatic conflict resolution)、时钟和其他外设,这里每一部分都有相应的标签对应不同功能操作。
' b# t: P# X2 x9 p* w1 K' F第三步,处理一些middleware stacks (such as USB or TCP/IP)。
! ~) f& {! k# X( k7 ?& [" K第四步,点击代码生成,自动生成硬件初始化代码或Device Tree内容。
& |, p" b, T/ X  u
* Q6 X' J; w7 ~; \( F+ C, z' T6 A  ^' O
注:% m" v' P9 l' O6 i; W
STM32CubeMX里不同标签的功能,包含但不限于:
: S& x- b+ O6 \; d3 z/ @5 k* f6 z - Clock tree with dynamic validation of the configuration5 |4 ~( L4 h/ Q* C$ B' G' O, K3 n
- Power sequence with estimated consumption results
6 s' t' h3 c! k/ e————————————————% A7 u! w6 X0 P5 J8 [7 K
版权声明:夜流冰
! [( _* |4 w+ G$ \: z- U如有侵权请联系删除
% ^+ C5 e: Y! F* I* _  e$ s
' }9 h" s( F. q: }! J
+ v, J0 U, ~' Z, w, M' {
赞 收藏 评论0 发布时间:2023-4-30 18:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版