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

基于STM32Cube介绍经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-30 18:26
在菜单栏里逐级找到:“Tools & Software” -> "Ecosystems" -> "STM32Cube Ecosystem",然后点开。
) R% L( Q4 {3 `! W/ p9 @6 ?7 K! f, @# I) D
STM32Cube系统是一个用于STM32的控制器和处理器芯片的完整的软件解决方案。目的是为用户使用STM32芯片找到完整的和免费的开发环境,同时也使用其他IDE的用户,比如Keil或iAR,也能方便的和这个系统里的组件集成到一起。) e9 v+ M. Z& m

5 v) ?, v' F; u4 g/ N3 }2 H0 P# G- t  p简单的说STM32Cube是一个软件工具和嵌入式软件库的组合。5 F5 D" |+ V# }" Y+ q9 x$ j
- F+ Q- g8 t1 i; G" {( Z
- 一整套PC软件工具,来解决完整的项目开发周期中的各种需求。3 X. g) D* _1 Y$ w

3 c2 e0 h! e5 W- z - 一些嵌入式软件库,用来在STM32芯片上实现各种功能,从MCU外设驱动到面向应用的高级特性。  n/ n; u4 C" D3 f8 S6 F

6 n5 `: J: r4 aCube的寓意是魔方,有很多个小方块组成。如下图:
# k0 B5 M2 A- U+ O
" R# r: O7 V0 S; t* YInside the STM32Cube ecosystem
9 C# ^% P( `7 g. s
4 I/ [# I7 R+ M; z0 c9 v. l6 k9 A2 M* b
20210828112526565.png
9 B: ^( R  I# V! n& d
* O* |+ b; V- W  P, Z

4 f& A0 z4 m1 z( }& m右边的Azure RTOS,是不是没听过,我之前也只知道用的最多是免费的FreeRTOS。
' I. a6 ]% W' i# @
8 Y/ `8 {3 t* c5 ~4 H& J& z$ |那这个Azure RTOS,就是之前的ThreadX,被微软收购并开源了。ThreadX是收费的RTOS系统,性能上更强大。我也是才上网查了下才知道,2019年就收购拉。
7 [9 W1 b+ r6 L2 L- C/ N
6 Q8 i; Z. ^, ~2 f; [+ g0 l
如此一来,这个优秀的RTOS就代替FreeRTOS,集成进了STM32Cube系统中。
7 F8 b4 B. W7 Z* C% E/ p5 S
& q, N/ m0 ?3 O
A. STM32Cube软件工具套件可以在各个开发阶段助力开发者:5 h  }  c" g& ~# s+ S$ Y

; V  e$ ~4 f9 J* W0 r4 L4 x" \& A7 L
- STM32CubeMX, STM32设备配置工具. 用图形化的界面工具,为Cortex-M芯片生成初始化代码,为Cortex-A芯片生成Linux Device Tree。" |9 @- n1 `# ?+ r
6 c- x( i. F: a* m. \/ k& q
- STM32CubeIDE, 一个集成开发环境,基于开源的Eclipse工具和GNU C/C++ toolchain。  并能更好的和其他Cube工具配合,比如方便集成CubeMX自动生成的初始化代码。不过大家可能用的比较多还是IAR和Keil。
2 w3 R2 t9 a! @3 \, ]/ I$ f3 K  A  e4 B% u/ N. H+ ]0 p# v
- STM32CubeProgrammer, 一个烧写工具。它提供了一个简单有效的环境,来读、写和验证片内存储和片外存储,支持广泛的通讯方式:JTAG, SWD, UART, USB DFU, I2C, SPI, CAN, etc.
4 m5 w( w! O4 j* l9 A, L( [3 I, K4 m  t
- STM32CubeMonitor系列工具。强大的监视哦工具,用来帮助开发者功耗的优化有实时性要求的应用的行为和性能。2 v( n$ z3 {: _2 D

7 g5 \' f& U6 `$ P7 S, d
B. STM32Cube嵌入式软件库帮助开发者加快开发:* L& N0 ~9 F: x$ a1 U0 L8 [5 O
. J# ^- W, A) G% F  G
- STM32Cube MCU and MPU 芯片支持包, 各个STM32系列芯片专用的
* o2 u& i" w, D: Z# K5 }. l
$ y9 D$ e7 u1 X9 ~& S: {! c  j
这些包提供了STM32片上外设的操作实现和接口。包括HAL层的驱动,中间件软件框架和大量的示例,很多真实案例的项目可供参考。; |- P! X: }* e
) y8 q' W+ B! p5 z# N
- STM32Cube扩展包, 在一些应用方案中使用。
4 A6 x) v* A/ w  N6 t! E2 m; Q7 u: D4 R+ O- @0 ~: i
从ST自有或经过许可的第三方合作伙伴,提供可扩展包,增强STM32 Cube工具软件的功能。
& M0 p6 q! `& Q/ C# ?6 L: p: w" o8 _" G: O
通过A+B,STM32Cube, 为开发者提供了一个综合的节省时间的方案,包含的工具和软件库,简单好用易集成,更利于商用。  H1 X: j0 A' G

+ P# @- ^3 o/ ~) m" J
- 使用free and open-source software (FOSS),No copyleft licenses terms。3 k+ G+ R. C: N) y1 s& h% T2 ^

  @+ Y" B* e- x
- 这些工具和软件由ST开发,都是免费的。各种扩展包也可在官网直接下载,免费共享。
  d5 e. Q+ r' c  @$ \: L6 }( _, m: W! u+ V
这些软件库,在发布之前都经过测试,并遵循良好的代码规范,比如MISRA, code checkers和validation reports等。+ Q! H( [6 T! k  ?" t

; [1 R2 Z3 m  H% O1 h
A. Software Development Tools) b" O# ~! O0 y- @2 h1 @! u+ V

$ V. W8 N. m7 g1 f' d$ ~: B( s! ]
相关的STM32Cube的强大工具,在各个开发阶段都能堪以大用,并可以单独使用。) d, g, S' g6 ?: ]% Y- m7 r- ~

  }- l7 [! n% b4 m9 @: \
20210828112525106.png
% g1 e. k$ j! M
& h& \: m! v: \7 b$ y" P& W

( j5 c# z% H2 B; kB. Embedded Software$ s- L9 j8 e" s4 ~1 x3 g

0 Q  Q( V% g2 t! H  \( b/ G  QB.1 STM32Cube MCU Packages9 ]' b! f+ s0 L" ~5 X  T! F; Z

: N/ }9 `8 w9 ]3 r
包括片上外设驱动,还有第三方软件框架。
" i; \6 b3 h' R' E4 I
+ M# s  Q- r* w$ K3 ~; q, K7 R
芯片支持包里包含的驱动分两种,一种使Low-Layer API,是性能优化版本。一种是可移植的Hardware Abstract Layer (HAL)API。
5 ~6 z1 D& M. x4 f* j
( M1 ]" [% f# N4 J; X" }, ?
可以在Github上查看STM32Cube嵌入式软件支持包:
; }: y9 X. |9 k) s, j  Z7 r2 i
- h$ M/ V. S6 f- A6 S. r+ D
注意,这表里现在还都用的是原来的FreeRTOS。1 K7 k0 D; c9 n+ G1 H* a  r5 i0 d, L& M; U
0 q+ U2 [- A( g$ G
20210828112525550.png
- n3 x9 r2 C5 o( Z3 Y! ^
8 }5 z: E0 b& W7 R
B.2 STM32Cube MCU Packages embedding the Azure RTOS middleware suite:
6 B$ s& z& ?* u! ~0 ^; |7 m* h# P: i# l% T& |
下面是应用了Azure RTOS的STM32芯片:
" K# B9 c  H6 i4 h9 v, `. i( i' T
8 v" M+ `5 C  }( f# P, Z. L5 B: A
20210828112525881.png ( i; r7 R$ d) u7 @- L9 Z6 |
. s9 E# L/ T( T" d: s+ S
B.3 STM32Cube Expansion Packages* \6 z0 B# o4 W- S* T$ X' A& S, n+ X  N2 H

" {8 p: b5 b/ G还有一些扩展包,作为STM32Cube MCU包的补充,在某些应用领域比如传感器、电源管理、音频和NFC等,提供一些特殊的应用案例。
9 T) T. v: t( q
  O7 [' O) Z, e) F4 S: c; F9 |
得益于STM32的良好生态,有ST和认证伙伴所提供的扩展包持续增长,在集成的开发环境中包含了丰富的参考项目案例。
" H$ a" a; x: T( L( v( A& F1 s7 C* f5 b4 L8 g+ Z
这些扩展包增强了STM32CubeMX和STM32CubeIDE的功能,使开发者能更好的进行软件设计。
1 G2 x7 K: N5 ^  M
1 g9 U* c' S* P8 m
===========================================================
  F- [+ s; \* PSTM32CubeMX
' }* r: Q3 Z, i" y方便我们配置芯片,使用图形化的方式,很多工作大大简化。
  W& I2 x$ u9 L8 u1 w! V比如,之前配个GPIO要查芯片手册,看寄存器怎么操作,而现在只要在界面上选中这个端子,然后选择相应的配置模式即可,然后就自动生成硬件初始化设置代码。
7 _5 A  U( U7 F) U+ r0 x4 ]6 h/ y如果是Linux系统,就是生成Device Tree。
8 v1 k9 p4 ]1 G
' X2 I) l+ t/ U: f  C. e$ ~
所以,这个工具就是一个硬件配置工具,简化了我们初始化硬件的软件设计和编码工作。% e( q, A  i3 v
9 U7 [( \' p' X5 x  u' i
操作方法如下:% `5 |2 O1 \: m0 B2 k
第一步,选择相应的芯片或开发平台。
3 n( z! D7 J$ D/ C第二步,对MCU,要配置GPIO(Pinout with automatic conflict resolution)、时钟和其他外设,这里每一部分都有相应的标签对应不同功能操作。- V; X4 e. w8 u' }
第三步,处理一些middleware stacks (such as USB or TCP/IP)。- Q# V4 I- T, I9 t4 ]1 J" B# {
第四步,点击代码生成,自动生成硬件初始化代码或Device Tree内容。
$ X6 x" Z5 _4 v# _. P, [) y* y
注:. D" ~! N4 w# P% S/ u3 P/ v
STM32CubeMX里不同标签的功能,包含但不限于:( P! d( |5 W+ k# A& y" S  e
- Clock tree with dynamic validation of the configuration
" Z& _' N- P# M* m5 a* ^* q - Power sequence with estimated consumption results# q" |/ U! J/ M+ \/ ~) m0 K" s
————————————————; S9 l( j5 \. T- H
版权声明:夜流冰2 ^( Y3 A4 ~: N. w
如有侵权请联系删除
& J9 y& j, ]+ E9 _8 R; u9 v$ f& E  O' v2 D1 |/ Z" j- F

5 ?; k8 l4 M0 N
赞 收藏 评论0 发布时间:2023-4-30 18:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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