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

基于STM32Cube介绍经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-30 18:26
在菜单栏里逐级找到:“Tools & Software” -> "Ecosystems" -> "STM32Cube Ecosystem",然后点开。
+ V1 E4 l% ^) k' p/ _0 ?) h1 B$ N. `
: K0 d$ y, m# O4 V0 i9 eSTM32Cube系统是一个用于STM32的控制器和处理器芯片的完整的软件解决方案。目的是为用户使用STM32芯片找到完整的和免费的开发环境,同时也使用其他IDE的用户,比如Keil或iAR,也能方便的和这个系统里的组件集成到一起。
$ ?! Y% M- T: `9 {# F1 e- p0 d4 s% `

) x  M2 P6 ^6 g, l9 G简单的说STM32Cube是一个软件工具和嵌入式软件库的组合。2 C' G. m( x9 p' E1 d: D

; [, E- p. U$ z" O0 Q0 Q* l& ~ - 一整套PC软件工具,来解决完整的项目开发周期中的各种需求。  K2 \# \; M0 `% t! O/ B9 M

) q! F( G2 J- S5 T' K, w% Z9 W2 W - 一些嵌入式软件库,用来在STM32芯片上实现各种功能,从MCU外设驱动到面向应用的高级特性。7 \8 Q3 E  B9 t* h, S' |6 O* U! w& ]4 y4 I

5 k1 y# A0 z& [' x/ FCube的寓意是魔方,有很多个小方块组成。如下图:* d9 m6 h) T4 o" y7 d
/ b& V( n& W( `/ G$ h6 @! N
Inside the STM32Cube ecosystem
$ |# }4 |3 h# v: ?' Y, l  v: M
7 h5 h' ]$ W: `' k) h
20210828112526565.png
; [4 W- `+ }  y7 M! g4 }1 Z1 e6 Z1 j

! N$ ~+ J+ ~' B2 d4 l6 K, T右边的Azure RTOS,是不是没听过,我之前也只知道用的最多是免费的FreeRTOS。6 i+ P  a; S  c; r
/ o# c" t7 m5 ~/ W3 y% X
那这个Azure RTOS,就是之前的ThreadX,被微软收购并开源了。ThreadX是收费的RTOS系统,性能上更强大。我也是才上网查了下才知道,2019年就收购拉。
& G+ d3 ]- ?! g* H! a% g1 T
3 q$ @: |* Y7 U, X0 w! E
如此一来,这个优秀的RTOS就代替FreeRTOS,集成进了STM32Cube系统中。
! c) n3 t3 `; w2 i0 A& x' ]. h& A$ h3 P
A. STM32Cube软件工具套件可以在各个开发阶段助力开发者:
5 K. B# i' @* `: ^5 f8 d
5 Z  G: Q  x/ l  o6 o" S: g
- STM32CubeMX, STM32设备配置工具. 用图形化的界面工具,为Cortex-M芯片生成初始化代码,为Cortex-A芯片生成Linux Device Tree。' |" X: ^3 Q& x* \: g2 W
" {$ s, }$ O6 @$ d
- STM32CubeIDE, 一个集成开发环境,基于开源的Eclipse工具和GNU C/C++ toolchain。  并能更好的和其他Cube工具配合,比如方便集成CubeMX自动生成的初始化代码。不过大家可能用的比较多还是IAR和Keil。; l% x. T; p  i
* A6 u7 P% p/ w) e  \
- STM32CubeProgrammer, 一个烧写工具。它提供了一个简单有效的环境,来读、写和验证片内存储和片外存储,支持广泛的通讯方式:JTAG, SWD, UART, USB DFU, I2C, SPI, CAN, etc.
' l8 `, e- E" e5 r) q4 z+ }  e
* R' D0 a0 ^3 U, h8 P; C( _+ G# E
- STM32CubeMonitor系列工具。强大的监视哦工具,用来帮助开发者功耗的优化有实时性要求的应用的行为和性能。4 o+ s( P# N' q. J# l
; f, Q* H/ o4 q. O3 ]
B. STM32Cube嵌入式软件库帮助开发者加快开发:$ Q2 i1 E2 P+ L

/ |5 J( v" L$ j# a1 x8 V
- STM32Cube MCU and MPU 芯片支持包, 各个STM32系列芯片专用的6 W5 ^5 p% V9 U3 f. e
( g: }9 |' T0 b7 Y" A: X  Z# ?8 ?8 S
这些包提供了STM32片上外设的操作实现和接口。包括HAL层的驱动,中间件软件框架和大量的示例,很多真实案例的项目可供参考。& q: B+ T4 Q2 J8 [6 f9 c7 l: Y/ j( ]

, T2 n, I3 E6 Q' w% @* [
- STM32Cube扩展包, 在一些应用方案中使用。6 W2 U8 [  M6 y" f3 K- H9 S

  Z& {  x6 C1 w/ r3 L3 r
从ST自有或经过许可的第三方合作伙伴,提供可扩展包,增强STM32 Cube工具软件的功能。4 S. D  r7 H, G: R: x9 h9 Q! H( q
! {1 O' |8 T; L8 s7 p
通过A+B,STM32Cube, 为开发者提供了一个综合的节省时间的方案,包含的工具和软件库,简单好用易集成,更利于商用。
8 g' |6 E1 G. H9 L/ O" z
4 y2 e. a5 h7 ^  y: Z
- 使用free and open-source software (FOSS),No copyleft licenses terms。3 g) F; ^9 g* f9 }/ a/ K- @) C/ F

% [$ C3 J- U; L$ \- I1 m. i5 t8 J7 }! ^2 R
- 这些工具和软件由ST开发,都是免费的。各种扩展包也可在官网直接下载,免费共享。
% G! o9 O, ?" l! j* Z6 ~) i; Z8 V* _
7 m( }7 C, S: D) P
这些软件库,在发布之前都经过测试,并遵循良好的代码规范,比如MISRA, code checkers和validation reports等。, j/ m1 {' V" h5 l: j1 e
" p7 j) X+ E1 m
A. Software Development Tools# Z1 c, d# x& o7 Z

% l( M* e  m( ~& k# B7 T% ?7 n
相关的STM32Cube的强大工具,在各个开发阶段都能堪以大用,并可以单独使用。
& J- A5 A/ E' n" V& H" m- M( L5 l) Q9 U( J- A$ ]
20210828112525106.png 2 L9 X0 p: j9 H# m  P5 I" h

$ K5 _) M7 u5 r  o$ s  d

6 W1 M  A4 y1 {( v0 f8 b# ZB. Embedded Software! A0 q+ U" M7 |2 G; s
+ v/ W! h/ d/ ^9 Y- |0 ^
B.1 STM32Cube MCU Packages! b8 l3 i- m$ ?& q% s; S: b

( b% k4 k  A& t2 V* L
包括片上外设驱动,还有第三方软件框架。
1 B: U) a- e% W) l5 q1 b3 j) C% {, Q/ t$ G
芯片支持包里包含的驱动分两种,一种使Low-Layer API,是性能优化版本。一种是可移植的Hardware Abstract Layer (HAL)API。
  Q; \% K2 R+ ]6 ]" N; S3 z/ w; Q; [! u/ S8 J
可以在Github上查看STM32Cube嵌入式软件支持包:
  z8 I$ [3 Z! J7 W) J

; W7 [7 J( b7 C6 K) d) y! A. Y3 T注意,这表里现在还都用的是原来的FreeRTOS。
3 n: \. B4 d1 m; U9 b  [6 h
5 C. c3 N/ _( I
20210828112525550.png
- J( H& z* s* Y9 K0 m. T( C! x# I- b. |# l" k2 W- W
B.2 STM32Cube MCU Packages embedding the Azure RTOS middleware suite:! p" s5 X6 ~- M. j1 J) v

$ z* ^0 ]% a, t' g
下面是应用了Azure RTOS的STM32芯片:3 L7 f" T" B( F+ ^; f' U

8 x9 {% h1 f" u, Q
20210828112525881.png ) X8 x" l- \, \* P" `2 s

, V+ C' @" ^; G3 F1 h5 E6 i- Q* L
B.3 STM32Cube Expansion Packages0 L, o+ \; g  ]* V6 ?2 l
4 s( o$ P  N7 U) s$ p2 \" ^
还有一些扩展包,作为STM32Cube MCU包的补充,在某些应用领域比如传感器、电源管理、音频和NFC等,提供一些特殊的应用案例。
$ R/ m# J# g, |6 x7 j1 s2 t9 B' A) g
0 m: C: d4 h, e+ G
得益于STM32的良好生态,有ST和认证伙伴所提供的扩展包持续增长,在集成的开发环境中包含了丰富的参考项目案例。) U0 q7 P# Q% Q. F% Q) l% O

# C! c8 ]  t2 f3 C! S) K
这些扩展包增强了STM32CubeMX和STM32CubeIDE的功能,使开发者能更好的进行软件设计。* I$ e% ]" Y9 D! U( T
3 g! w+ P  i4 x
=========================================================== 3 ], i, ?/ B- _: E# W' {
STM32CubeMX
4 B7 f1 I1 u" L* j6 T9 Y方便我们配置芯片,使用图形化的方式,很多工作大大简化。
5 b; s( R. ^$ W& f比如,之前配个GPIO要查芯片手册,看寄存器怎么操作,而现在只要在界面上选中这个端子,然后选择相应的配置模式即可,然后就自动生成硬件初始化设置代码。
. W8 m/ S$ A* g$ A: [如果是Linux系统,就是生成Device Tree。/ s5 D% C+ ]& Z. J0 V
# c# x, ]' D4 o. J+ q7 \
所以,这个工具就是一个硬件配置工具,简化了我们初始化硬件的软件设计和编码工作。7 D9 W1 K% D4 b: u2 M; R6 O

( ^: o/ v1 ?1 o7 `  ^
操作方法如下:
2 B/ _# L. k) u第一步,选择相应的芯片或开发平台。. I$ A% T$ x  u$ o$ h6 M8 U
第二步,对MCU,要配置GPIO(Pinout with automatic conflict resolution)、时钟和其他外设,这里每一部分都有相应的标签对应不同功能操作。
) N/ i) t& j' }% o4 w# {# s第三步,处理一些middleware stacks (such as USB or TCP/IP)。* g% ?0 x$ M5 |4 Z+ }; P
第四步,点击代码生成,自动生成硬件初始化代码或Device Tree内容。0 D- d" V( Q: G; R7 j$ U+ P

) |5 L7 m" J; h) H
注:
9 s4 Q5 L7 l! L" _( k- N- [STM32CubeMX里不同标签的功能,包含但不限于:7 b& u% g- @/ |' ]. B3 R* `
- Clock tree with dynamic validation of the configuration
0 P6 I( i# u0 c2 G# f; d - Power sequence with estimated consumption results
9 D6 r- {* |0 w! k+ ~0 l————————————————
. e3 y. X. |- w  i/ W, [  z版权声明:夜流冰
2 W5 [( z- q+ _/ e+ \2 e1 V9 H3 J如有侵权请联系删除
4 y, s* q  _8 y) A2 H0 S# I, }4 `/ N; }4 y8 {+ X) p
0 i. d8 u( v- t% C, V5 O
收藏 评论0 发布时间:2023-4-30 18:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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