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

基于STM32Cube介绍经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-30 18:26
在菜单栏里逐级找到:“Tools & Software” -> "Ecosystems" -> "STM32Cube Ecosystem",然后点开。" B# ?# G) P$ [+ a% v9 k; c$ z- Y
/ m6 }9 G- s% T- s
STM32Cube系统是一个用于STM32的控制器和处理器芯片的完整的软件解决方案。目的是为用户使用STM32芯片找到完整的和免费的开发环境,同时也使用其他IDE的用户,比如Keil或iAR,也能方便的和这个系统里的组件集成到一起。
  V+ I$ ^6 S6 {$ o! e

/ V$ y' q5 p( Y简单的说STM32Cube是一个软件工具和嵌入式软件库的组合。
6 w% C+ k( o- W8 s
" }6 U* |7 K( c& W( |; V' x% c
- 一整套PC软件工具,来解决完整的项目开发周期中的各种需求。$ a. w' R) r8 h9 j# i% ^4 c# ^

% o+ s1 l7 k- C+ A: ]+ j - 一些嵌入式软件库,用来在STM32芯片上实现各种功能,从MCU外设驱动到面向应用的高级特性。9 a* ?. c9 F! S7 L* V9 j3 d

( H+ t$ B! O: W3 F+ OCube的寓意是魔方,有很多个小方块组成。如下图:$ U( `1 ?* C: f

* O. I' v: O( H! k. i# sInside the STM32Cube ecosystem
0 g7 X3 ]% Z0 I! w2 O% x2 t6 `) m& [4 s+ w( v- P
20210828112526565.png ! f" b, e7 Z! Y8 q. _5 i  H
4 S8 L- C$ ]$ D6 y2 Y& i0 t9 E- \
% b5 S' z/ t6 |2 b' ~% B3 H# u6 r( U  G
右边的Azure RTOS,是不是没听过,我之前也只知道用的最多是免费的FreeRTOS。
+ |, t( V2 }9 q: V$ }1 z1 u' W& I8 U+ e
那这个Azure RTOS,就是之前的ThreadX,被微软收购并开源了。ThreadX是收费的RTOS系统,性能上更强大。我也是才上网查了下才知道,2019年就收购拉。
) z& t% i2 H0 Y
1 o, m( ~9 O2 \1 O0 m' c3 T% V
如此一来,这个优秀的RTOS就代替FreeRTOS,集成进了STM32Cube系统中。* b+ d0 F' I8 s! j* i+ E) z3 _
& t% K* J& G7 S6 E" r3 A1 t# W
A. STM32Cube软件工具套件可以在各个开发阶段助力开发者:7 ~" [: r2 a# \  b

( F# @- A9 Q% [
- STM32CubeMX, STM32设备配置工具. 用图形化的界面工具,为Cortex-M芯片生成初始化代码,为Cortex-A芯片生成Linux Device Tree。
5 h3 u6 I8 H) T0 e( a, N* M7 y1 y; U6 V& c3 A1 C% l
- STM32CubeIDE, 一个集成开发环境,基于开源的Eclipse工具和GNU C/C++ toolchain。  并能更好的和其他Cube工具配合,比如方便集成CubeMX自动生成的初始化代码。不过大家可能用的比较多还是IAR和Keil。" }/ U: [" U1 \* F* Q
4 J- {1 N! l( ^( q% x2 s- P4 g) u
- STM32CubeProgrammer, 一个烧写工具。它提供了一个简单有效的环境,来读、写和验证片内存储和片外存储,支持广泛的通讯方式:JTAG, SWD, UART, USB DFU, I2C, SPI, CAN, etc.1 E4 z) O" v' u. O' J( U
* ]- H, S* R# Y, y8 Z
- STM32CubeMonitor系列工具。强大的监视哦工具,用来帮助开发者功耗的优化有实时性要求的应用的行为和性能。' K1 M( `; J* c, v; G7 p% J
; N& U0 Q% T7 `) t' q
B. STM32Cube嵌入式软件库帮助开发者加快开发:
1 {% O1 f7 Z1 ?3 H* l. a  Y  z# d' c1 x6 [2 ~
- STM32Cube MCU and MPU 芯片支持包, 各个STM32系列芯片专用的
: i) S' X3 n+ r) m, s0 R- Q: z; v+ f5 D
这些包提供了STM32片上外设的操作实现和接口。包括HAL层的驱动,中间件软件框架和大量的示例,很多真实案例的项目可供参考。, \% }, \% @" Z9 @, z' M; W

" y# {0 p+ G. d2 |7 L5 F: t; A' X( v
- STM32Cube扩展包, 在一些应用方案中使用。
) Y) }* ]1 W2 _; n- M& p4 D7 R. Y
. f! B' c1 R; R* `' c
从ST自有或经过许可的第三方合作伙伴,提供可扩展包,增强STM32 Cube工具软件的功能。
6 K9 h8 u5 o) p& y# `* E( o2 W) l  O" z. S' x2 @4 n$ ?# m
通过A+B,STM32Cube, 为开发者提供了一个综合的节省时间的方案,包含的工具和软件库,简单好用易集成,更利于商用。& R' `/ U3 |# O. E% c
, _! t# l$ U/ c- n
- 使用free and open-source software (FOSS),No copyleft licenses terms。+ D0 `. k* E8 M3 C; Y

0 O8 C1 c- l" R, Y' Q' M1 o
- 这些工具和软件由ST开发,都是免费的。各种扩展包也可在官网直接下载,免费共享。! {) k3 }7 K- W9 l7 P/ K
) l% `- c( |+ L( }
这些软件库,在发布之前都经过测试,并遵循良好的代码规范,比如MISRA, code checkers和validation reports等。
8 y! e" @+ T5 P  Y  X( f
/ M$ K* w( {( s4 N, o
A. Software Development Tools" R0 @: g) _3 w: n
3 K& P1 c+ Y# `2 P( ]
相关的STM32Cube的强大工具,在各个开发阶段都能堪以大用,并可以单独使用。
6 J/ P8 l9 i7 w4 E  n9 M/ c+ R2 d) S
20210828112525106.png
- a1 X- M6 W0 |4 j  |+ c3 ~5 z* ?, v& F) ]
/ H4 y' r7 |' D9 e6 l# t
B. Embedded Software
1 g( ^' z+ S6 k! o9 a' a

7 j! W: y2 L/ b, N$ P  fB.1 STM32Cube MCU Packages2 L4 {: L7 W# b( Q# A

4 W. t" _' g7 a6 e) C5 H% @2 \
包括片上外设驱动,还有第三方软件框架。
: ^( Z/ E5 e( U6 r5 f7 v" \7 v# p. T6 K* h; y+ X' ~
芯片支持包里包含的驱动分两种,一种使Low-Layer API,是性能优化版本。一种是可移植的Hardware Abstract Layer (HAL)API。9 w  o$ j' l! r9 L2 K8 H( ^
6 u. l0 z* }! v3 }6 w$ ~: q
可以在Github上查看STM32Cube嵌入式软件支持包:
/ P* N- V9 y+ l; f
5 a" s+ A# [# N. m( k
注意,这表里现在还都用的是原来的FreeRTOS。
7 |3 C; p6 r+ T3 w& k, X. u) d4 X
* C7 [5 R- ^0 v/ p
20210828112525550.png
# ?: D' X6 }% a
% l4 Z' ]$ E7 Z" t3 I: |, }
B.2 STM32Cube MCU Packages embedding the Azure RTOS middleware suite:
) H1 ?) F" G0 ~+ c- O$ n# Q" m. s+ `6 O- M: h, q9 S
下面是应用了Azure RTOS的STM32芯片:
' j- l4 ^% r  l5 D% H
! Y% V5 Q6 M7 k3 k
20210828112525881.png
7 r; n1 u6 Y* q! M9 x3 u
9 [& R/ B( ]# m8 l. m5 _
B.3 STM32Cube Expansion Packages
% z$ O8 M2 B$ ~" r, K3 D3 |; @6 Y" s8 z. r3 w  M
还有一些扩展包,作为STM32Cube MCU包的补充,在某些应用领域比如传感器、电源管理、音频和NFC等,提供一些特殊的应用案例。
+ T7 q/ T. `0 |9 t2 C8 }
7 F7 f! a0 |3 y5 b. Q! I3 i
得益于STM32的良好生态,有ST和认证伙伴所提供的扩展包持续增长,在集成的开发环境中包含了丰富的参考项目案例。" k* o7 b- u( u( l; P* T
( t* t. q6 C3 q3 z
这些扩展包增强了STM32CubeMX和STM32CubeIDE的功能,使开发者能更好的进行软件设计。$ u% D1 }4 c% B/ Z

: d* k& W* i: }- B
===========================================================
, X/ L" y0 c" P0 PSTM32CubeMX0 c' h+ d% z5 J, Y/ p5 w; A
方便我们配置芯片,使用图形化的方式,很多工作大大简化。
. Q; T, R3 J1 ~7 O- E比如,之前配个GPIO要查芯片手册,看寄存器怎么操作,而现在只要在界面上选中这个端子,然后选择相应的配置模式即可,然后就自动生成硬件初始化设置代码。
6 `1 C1 d2 Y1 C/ z- }' x如果是Linux系统,就是生成Device Tree。6 ?2 L& a  k* i- f

" M# r9 p" s( g: M- Y6 Y& F, H
所以,这个工具就是一个硬件配置工具,简化了我们初始化硬件的软件设计和编码工作。
/ t' B# t7 [9 ^( P7 S6 Q
" D% X; J$ x8 Q, Z
操作方法如下:
! Z( P9 a8 r5 z! H% c第一步,选择相应的芯片或开发平台。( `7 ~& K: R* a2 \
第二步,对MCU,要配置GPIO(Pinout with automatic conflict resolution)、时钟和其他外设,这里每一部分都有相应的标签对应不同功能操作。2 p/ _7 m. {/ M" {/ q1 a+ u; c; R
第三步,处理一些middleware stacks (such as USB or TCP/IP)。
: h1 o. Z: ]& b& Z( p第四步,点击代码生成,自动生成硬件初始化代码或Device Tree内容。
2 S: P$ U. h) a' j  t) D9 s. o* f8 n% X- k- N% F, b3 [) X
注:# M( C: _+ N& S; I' N& ?
STM32CubeMX里不同标签的功能,包含但不限于:
* @8 d, c, x" X, A! y  U - Clock tree with dynamic validation of the configuration
5 J3 G/ H6 m0 W) C8 d2 H  P( i - Power sequence with estimated consumption results- o. h- {9 \! X  y. g* h6 q6 M
————————————————5 w; T- n8 b( h  [. x5 i
版权声明:夜流冰1 n' H. B- X$ c$ g  ^( p
如有侵权请联系删除5 c2 F; q$ J6 P6 U7 K

, x9 \& C" e0 F8 P; r' l7 _- m' E2 Q$ B) ~# h" W3 P, p) L: d( a  G  k+ u
收藏 评论0 发布时间:2023-4-30 18:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版