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

STM32CubeIDE创建基于CubeMX (.ioc)工程文件经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-6 19:29
一、STM32Cube 生态系统
# @6 z, }& `0 y& p8 m5 S        可以在其官网查看,支持中文。
2 p6 X& l; _$ b. b1 A
6 M1 `$ t7 _& g) W, h8 M4 V) z
e2cd2f92d6a241bf8f4c1d62026b70da.png ! Y. B1 A$ ]- O) V/ r6 t) S+ N
​6 T5 |# W% @/ m8 [; [/ |
        截取官网的STM32Cube家族的软件工具描述:
: b! d; U6 c. n3 V    【1】STM32CubeMX, 面向任意STM32设备的配置工具。这款简单易用的图形用户界面为Cortex-M内核生成初始化C代码,并为Cortex-A内核生成Linux设备树源码。
: n4 d. A) Q7 X) ]1 U+ Y    【2】STM32CubeIDE, 一种集成开发环境。该IDE基于Eclipse或GNU C/C++工具链等开源解决方案,包括编译报告功能和高级调试功能。它还集成了其他工具,如STM32CubeMX(本身包含在STM32CubeIDE中)。
( j2 D6 i5 ~$ C$ N, t   【3】 STM32CubeProgrammer, 一种编程工具。它通过多种多样可用的通信媒介(JTAG、SWD、UART、USB DFU、I2C、SPI、CAN等)为读取、写入和验证设备和外部存储器等操作提供简单易用且高效的环境。" r- `, @% ~2 p4 A- R0 v% D' z8 O
    【4】STM32CubeMonitor系列工具。功能强大的监控工具,可帮助开发人员实时微调其应用程序的行为和性能。      
9 v! s" H6 B2 M' M2 I1 k        这四款软件中,STM32CubeMX年岁最久,也是被最广泛使用的。它集成了芯片选型、引脚分配和功能配置,中间件配置,时钟配置,初始代码和项目的功能,因此积累了大量的STM32CubeMX (.ioc)工程配置文件。3 G, J* U- C5 P% Q3 {9 `9 I' @

! Q. Z" d; m" F/ T8 L7 O        而STM32CubeIDE出现时间较短,在2017年12月的时候,ST收购了Atollic公司,然后TrueSTUDIO for STM32就这样诞生了。 直到2019年4月份,ST正式推出了STM32CubeIDE,简单说就是TrueSTUDIO for STM32的“升级版本”。ST公司把STM32CubeMX给集成了进来,作为和其他厂家IDE最大的一个区别亮点。
3 c$ [; ^5 |6 K) ~) g- ]4 V$ x/ a3 W1 j6 Q1 k* y8 v
        虽然STM32CubeMX提供了图像化配置芯片,但是针对众多芯片型号涉及各个引脚、时钟等配置,还是开发环节中极其费心费力的一个环节,常常会由于配置不当而出现莫名的错误。而前人在通过多次验证所累积的STM32CubeMX (.ioc)配置无疑是我们开发者可以复用的。$ J2 z/ t0 m% c6 J1 w1 T& \. v' B5 z

8 y. f' i1 L/ N8 B  L        另外,每个芯片生产出来,是根据当时的MCU包进行匹配的,在升级MCU包后有可能反而出错了,针对一些旧信号芯片,往往需要选配旧版本的MCU包来匹配。) v" v6 F$ b! M
1 }/ V( M8 n. x
        在STM32CubeIDE新建工程中,目前只能选择在系列MCU的最新大版本中选择小版本。
" g* C4 b! g9 [$ y1 ]! ^% K  W4 B; j3 i9 a
6e5c3e5304d145469c84a45aa66c81df.png ) N& H5 c9 `2 c& h4 Y" M

9 A. S0 q; r1 M1 F二、cubeIDE开发对已有STM32CubeMX (.ioc)支持
6 \  H$ T) E3 E6 D6 W        为了支持原有STM32CubeMX (.ioc)配置,STM32CubeIDE加入了从原有(.ioc)配置创建新工程的选项,并该选项支持旧MCU版本的选择,该选择还允许开发者按需要提升MCU版本或保留旧版本。
3 C  y8 ^) I/ A* w$ Q( g- h4 N& h
. u. W' n3 z# Y8 ^/ {8 [' w7 U        我们先找到一个旧有(.ioc)配置,例如stm32L496VGT3_camera.ioc,我在CubeIDE工作空间目录,创建一个stm32L496VGT3_camera文件夹,并将stm32L496VGT3_camera.ioc文件放入该目。; B; M; V  r! C+ D: k

9 w# B/ |5 E  e2 Z3 o7 l        在菜单栏的“新建-> Create a New STM32 Project from an Existing STM32CubeMX Configuration files(.ioc)”,进入创建,如果没有该选项,可以“新建-> 其他”进入
2 ^8 c5 v! @. _8 m, B& Q; }" C0 n$ {
# t3 Q( G  q( j  d7 z" [- ^9 @
a2347feeeafd475c906d441d2048962b.png ( I) g6 ]0 a% {) W. Z) ]7 B
* w5 w6 M: B2 j2 @2 e- n
         点击下一步,进入基于已有(.ioc)创建新工程页面; Y2 A7 \% K: ~- Q* c' H

" u) i, f2 d+ G+ f( H
f8ca0111ef304babbdb602947db0aa72.png
8 W$ C; v8 Y0 u7 K: P1 R4 d' I1 G4 u; r
7 g* ~8 P7 R$ D% P1 X# [        再点击下一步,进入MCU包选择页面,可以查看该(.ioc)配置原有支持的MCU包版本。9 W, [( k$ F& |7 K5 c2 B
( D$ b, a. _; i
3acd7cd351ea4a4599ace41b70a5f130.png
) f  f' `% d2 h# d
2 V; N7 u) n6 v1 @         在点击完成创建时,会弹出选择对话框,询问是否维持旧MCU包,还是升级到新的MCU包支持。选择Continue维持旧版本时,如果支持库里没有该版本,IDE会直接下载该版本的MCU。5 n7 Q9 v7 C8 w( n9 I/ q% i
& G9 ]" N9 \2 Y2 }& m+ @3 \
6a0b6fbf0d9848368d76a897398b7a1e.png 2 Q4 q+ S" N! K1 B' D* f4 B
7 k" X# W4 M7 i" K
         工程完成创建后,和原来新建stm32工程一样,直接进入cubeMX配置界面,我们可以看到MCU包维持了原来版本,并(.ioc)原有配置已经输出了源码。我们就可以基于该配置基础上,添加我们需要的新配置或调整原来配置。. v, j: w4 }" X/ n- p& B* G; f

  v% ~( x! E1 f! N1 Y/ B8 x
ab84ccda708a48179ae927c875b27b08.png
: [6 Q' f3 h" u; ]4 |. B

. \5 d" n0 n8 T. Q6 {: Y9 O& X         修改配置后,点击保存或生成按钮,输出代码目录结构和我们原来新建STM32工程结构目录一样的。
  d' M; U. _% P& e' q8 f————————————————3 E6 u% r  ]' X) P
版权声明:py_free-物联智能
* A2 c" Q3 u- a  ~  s5 B如有侵权请联系删除
! N, j+ {& o8 p( s1 w
; o/ D0 \( W+ w# |- p
7 x  Y. o( f/ o4 {9 V
赞 收藏 评论0 发布时间:2023-4-6 19:29

举报

0个回答

所属标签

相似技术帖

官网相关资源

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