|
1. STM32CubeMX与CLion简介 9 n0 Z, P9 L- v3 c! T 1.1 STM32CubeMX STM32CubeMX是一种图形化配置工具,用于为STM32微控制器生成启动代码和初始化配置。 ; j, ^ `! X/ p: j) C# U; E 它可以帮助简化STM32项目的初始化过程,并提供了一种可视化的方式来配置引脚、时钟、外设和中断等。 HAL(Hardware Abstraction Layer)库是STMicroelectronics提供的一种高级API层,用于编写STM32微控制器的应用程序。
% C& z) m. K5 \ B 相较于传统ST系列开发,STM32Cube具有以下优势: 综合工具链: STM32Cube是STMicroelectronics提供的一套综合性工具链,包括了STM32CubeMX、HAL库、LL库、中间件和示例代码等。 ) K) C' T" b B/ i$ j+ D 它们可以协同工作,使得开发过程更加简化和高效。 * C: n' R/ w" l$ i 图形化配置工具: 1 F8 W2 v2 i& M* O STM32CubeMX是STM32Cube的核心组成部分,提供了图形化的配置工具。 它可以帮助开发人员通过简单的拖拽和配置来初始化和配置STM32微控制器的引脚、时钟、外设等,减少了手动编写和调试配置代码的工作量。 HAL和LL库: STM32Cube提供了两种不同级别的软件抽象层,即HAL(Hardware Abstraction Layer)库和LL(Low-Level)库。 HAL库提供了更高级别的API函数,可以快速上手和开发,而LL库提供了更底层的接口,可以实现更高的灵活性和性能优化。 9 Z& x2 Z$ [2 z" ]: F1 p0 E6 f 高度可移植性: 0 s- w. q0 l0 A+ P: P STM32Cube支持多个STM32微控制器系列,包括F0、F1、F2、F3、F4、F7、G0、G4、H7和L0等。 5 }6 f" D+ j ` 这意味着您可以在不同型号的STM32微控制器之间共享和重用代码,减少了开发和维护的工作量,并实现了更好的项目可移植性。 " @ `4 W6 _- b 内置中间件和示例代码: 5 R2 v% V0 Z }: N STM32Cube提供了一系列中间件(如USB、TCP/IP、文件系统等)和示例代码,可以帮助开发人员更快速地实现常见的功能和应用。 - ]1 z- X) ~! y* M% O; y3 Z 这些中间件和示例代码经过测试和优化,可以加速开发过程,并提供参考和指导。 持续更新和支持: % e' V6 t. E+ B1 |/ E STM32Cube由STMicroelectronics进行持续更新和维护,确保与最新的STM32产品和技术保持同步。 这意味着您可以获得最新的功能和修复,同时享受STMicroelectronics的技术支持和社区资源。- ( o* k& k& x+ h7 j6 a 1.2 HAL库 2 w$ l( V* |8 d. O5 O HAL库相对于标准库在STM32开发中具有以下优势: 抽象层:HAL库提供了一个硬件抽象层,将底层硬件与应用程序分离。 ; Z. t7 T8 Y& a9 E/ v- n( j 这种抽象层使得开发人员可以更专注于应用程序的开发,而不必过多关注底层硬件的细节。它简化了硬件编程的复杂性,减少了代码量和开发时间。 * X+ J X9 m+ T3 k% Q: R8 G 一致性和可移植性:HAL库为不同型号的STM32微控制器提供了一致的API接口。 这意味着您可以在不同的STM32微控制器之间共享和重用代码,而无需进行大量的修改。这种一致性和可移植性简化了跨平台开发和产品迁移的过程。 简化配置:HAL库与STM32CubeMX集成,提供了图形化的配置工具。这使得配置引脚、时钟和外设变得更加直观和简单。 9 ?: K2 ] l. h0 f1 t) P1 u! Y 您可以使用图形界面轻松选择和配置所需的外设和功能,并生成相应的初始化代码。 ) \% o5 V/ O. h3 M3 y5 W2 _ 内置驱动程序:HAL库提供了内置的驱动程序,用于操作和管理STM32微控制器的各种外设。这些驱动程序封装了硬件寄存器的访问和配置,提供了易于使用的API函数。 * d- f- S/ l" D3 ?" _, T% x 这简化了对外设的初始化和配置,并提供了一致的接口,使得外设之间的切换更加方便。 丰富的功能支持:HAL库提供了广泛的功能支持,包括串口通信、SPI、I2C、定时器、中断、DMA等。 ) |* z1 {7 `5 [& e* n6 c 这些功能模块的封装使得开发人员能够更轻松地实现复杂的应用需求,而无需从头开始编写底层代码。 3 N# t% y: }+ j( y- q* G) X# U" E HAL库的最大优势是官方推荐,而标准库函数版本已经不维护更新了 $ d/ `7 Z. E' {* p( H1 M4 Q 1.3 CLion ' C3 V' W9 N+ H0 u7 H CLion是JetBrains公司开发的一款集成开发环境(IDE),专门用于C和C++语言开发。它提供了许多功能和工具,旨在提高C和C++开发的效率和质量。
- t4 I% N. N( P c7 u! s8 L/ y; ]" ~ 2. 部署过程 2.1 软件部署环境 8 R( I- @" V7 l+ C0 o 软件环境: 7 T, A5 Z# g# O% k: J8 {4 e/ e
硬件环境STM32F103 J-Link & g, l0 q0 V( S 2.2 STM32CubeMX下载及安装 选择版本为6.4.0,高版本没有SW4STM32工程生成链 # x }2 E" V6 O' M, M
: ?6 P1 \. I% c# s' c/ _8 S- C
下载后解压
. l# }- }& E& }! I7 G, d2 ~
- |0 s, o1 @+ U! Q0 m. [
" |" ?# w' }! {; Y7 L% f2 I7 E
+ t. s1 e5 ]6 w7 [7 y
2.2 OpenOCD下载与安装 OpenOCD , A, P% ^3 q- I+ F Windows上使用 OpenOCD 给 STM32 下载程序 - 腾讯云开发者社区-腾讯云 (tencent.com) . \2 ^+ q% D- W Releases · xpack-dev-tools/openocd-xpack (github.com) 9 X+ _3 {/ ^) }3 I
8 i/ D& r+ N( B9 }2 r( ` 解压到自己可以找的到的地方,将bin目录添加到环境变量中 ' Q; e) D. `" e7 ^6 n# o( O a/ C
) a3 s$ x2 B4 J6 Z 选择zip形式 0 f' M2 \9 }$ X
1 g1 A$ z% f3 c! r/ y% P 将解压后的bin目录加入环境变量
3 [) ~8 ~/ [7 S$ S3 \4 t' T6 w" S) \ 命令提示符有输出证明配置正确 # H8 g, x, S- X/ E* P. u
# T7 V5 f. U3 a 2.3 CLion设置 设置clion File-Setting-Buid,Execution,Deployment ) F6 x+ O% Q* D6 F& m$ F 添加一个mingw环境 / e0 \3 K8 h0 ?4 Y' t5 f CLion下载和mingw下载以及安装可以参考其他博主网上教程
) S, q3 o% }9 `. Q 检查一下CMake 6 j. [& [. M& p! t5 D' h
5 T) l7 `' J$ N) r' L4 a/ | 配置完毕。 8 S5 J& r% L5 l8 w+ `9 ^$ K 3. 第一个STM32项目 # K5 t5 W: j: V6 ], s 开始第一个STM32项目 1 M+ x/ j% r# l) R, S; V
* s2 C! S+ r1 m5 ~ 点击create之后会生成一个.ioc文件,此文件与使用STM32CubeMX是等效的
点击此处能够使用STM32CubeMX打开.ioc
Q- A* z0 Y/ m' u# c, y; U F; Y 尝试点击一下
j" C2 e! C1 j: Y 默认选中的芯片型号是STM32F030F4Px,我们可以在CubeMX中重新选择自己需要的芯片,一切操作都和使用Keil开发没有区别。
1 I% Y) Q* O \) b: w0 x! `( x9 h% M 此处提示表达的是SW4STM32工程在之后的版本中被废弃了。
. `* p: ^1 M, p" ^+ z) r
N" C4 U- r2 `2 P- R 生成之后切换回CLion
打开File-Setting-Buid,Execution,Deployment ( I' } Y& V4 R' f+ V
配置完成 / I$ }0 j5 {+ N8 W" a) i
转载自: 古月居 " ?! K5 m+ P }2 d如有侵权请联系删除1 v3 i% |) \; t0 c# o |
【下载问题解决】关于ST官网下载软件问题解决
STM32CubeMX 6.18.0新版本发布
【STM32U3评测】使用INS5699 RTC模组
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
CubeMX生成CubeIDE工程代码乱码
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
【STM32U3评测】低功耗模式功耗测量
微信公众号
手机版