STMCU小助手
发布时间:2022-5-19 11:06
|
在使用STM32 ARM Cortex 32微控制器进行开发时,大部分人都会选择和谐版的Keil或者IAR来作为开发工具,平时自己玩玩倒无所谓,一但商用,搞不好某天就收到了律师函,毕竟不合法。目前主流的ARM平台编译器主要有Keil MDK的ARMCC、IAR以及开源的GCC for ARM,如果不想掏钱又不想忍受虚拟机的痛苦,GCC是唯一的选择。. [ V% Z% k+ X; v1 h2 h9 g ST在2019年收购了Atollic后,基于 Eclipse/CDT,GNU C/C++ Arm 工具链和 GDB 调试器搞了一个STM32CubeIDE集成开发工具,实际使用体验下来感觉还可以,写此文章分享给大家。 首先去ST的官网把最新的版本下载下来,我这里是1.8.0。选择Windows版本,在弹出框里填写邮箱,收到邮件后点击邮件里面ST发的链接就可以下载软件。 9 I2 O. }( u+ @2 E 这里建议把STM32CubeProgrammer,免得后面二次通过邮箱下载。STM32CubeProgrammer用于替代ST-Link Utility,可以直接将hex文件烧录到单片机,生产时很有用。类似与Jlink的J-Flash。: m& w/ f: K, i, {2 a
& W# x4 M# G+ c# L; w! J8 c. u* ]- U 下载STM32CubeIDE ; h2 e `! e0 Z% N- Q" X 安装的时候软件会把Jlink驱动和ST-Link驱动给安装上,没什么特别需要注意的,一路Next就行,安装完成后重启电脑。6 l% I+ _0 R8 K
! r9 T2 A$ n' d8 {, X) Y 安装STM32CubeIDE ' Y, V4 x+ X' q6 O! q1 V u8 u( A, H, ] a' e2 `) m* e) _0 ~ 点击桌面的软件图标启动,第一次启动需要设置workspace,软件的字体、一些设置都存放在workspace中,所有的工程都可以使用,可以自己定义一个文件夹来存放,并且设置为默认值,这样每次打开就不再弹出,点击Launch
设置workspace
首次打开软件 我手里有一块F303的Nucleo-64的开发板,上面有个LED,借助这块开发板,先来体验下STM32CubeIDE的功能。 V) R6 I( _; G 首先新建一个STM32工程。
新建工程 ' R4 J' t( v8 `( Q2 O 这个时候软件会自动去服务器查询是否有更新数据,如果有就下载。可以等他更新完,也可以直接Cancel跳过。建议等他更新完,特别是你使用了最新的H系列或者G系列等处理器。
5 L$ Y" A3 d! L6 A4 B% f# d 等待更新数据 7 k# A' Y& `0 u% V' c ~ B& p8 ]) E & |* v+ C* N' v 进去之后,软件会打开STM32CubeMX,没错,STM32CubeIDE集成了STM32CubeMX,搞STM32的人应该都对这个软件很熟悉,可以生成各种外设的基础代码,这里选择和开发板上的处理器一样的型号STM32F303RCT6,然后点击Next。7 Y& D n. v1 I: o) y ( g6 } @1 m5 ^% L
选择处理器对应型号 2 A! M7 B( t# }) Q u, H- F8 `. O: d2 P- j3 v 然后输入工程名称,这里有三个选项,第一个是选择使用的语言。第二个是编译结果,如果你的代码想编译成静态链接库文件给别人调用,就可以选择Static Library。第三个如果选择了Empty,则啥也没有,是一个空工程。
H1 y1 ^; Z0 l! [6 C1 ? 输入工程名称 ! M8 v0 `: W0 E" L0 _7 P: n( J: c7 w& h : ]; p# P% p# {- l 到目前为止,ST官方提供了三种方便开发的库文件,标准库、HAL库和LL库,如果你想调整库文件的版本,就在上个页面继续点击Next进入下面这个页面,如果不需要,上个页面直接Finish结束即可。
选择库文件版本 4 e; _4 a, H" j8 r. q6 I6 R然后软件会默认打开STM32CubeMX配置界面。; r5 m+ n8 G, ^* l7 R
首次进入工程后的页面 2 z# F) H& S7 X$ ^ 6 O, ^5 J, Z* }0 a7 i' ? 这里进行一些必要的配置,配置调试端口为SWD、打开外部无源晶振端口,将控制LED的PB13配置为推挽输出。, i0 [: i& x# c) z * s2 f/ @3 w; Q3 N. R+ u
& i! S* y& v# [7 H1 l 配置引脚 $ T; {" J1 k+ L4 Z/ n" g( Y通过上方的Clock Configuration切换到时钟树页面,将时钟源配置为外部时钟源,并设置时钟频率为最大72Mhz。
; T/ f; o: Q$ |0 q* \ 配置时钟树 . _) y3 J: l" u+ k6 g$ ~点击软件上方的这个按钮生成代码。 6 V! e5 `7 _, K1 n7 K! }
生成代码 + ~: B: `+ W4 P% I) Z' K8 N* [- K) Y2 {2 y7 g% C4 a: [ 生成完成后软件会自动打开main.c文件,在while里写入测试程序,让PB13端口每500ms翻转一次,实现LED每500ms翻转一次。(其实这里的延迟了501ms)
写入测试代码 5 w. F* P* y6 L* U4 A1 D/ t4 w! d9 Z 点击下图红框所示的编译按钮。9 N4 c: h1 Q! [+ R
开始编译 % z5 z5 h0 ]5 R; w: G9 F/ g6 {0 Y9 q# O 软件下方的Console窗口会输出实时编译进度。$ x& n& W3 Q# F6 q
编译结果 ' [- m# o7 U7 P$ h. w; P4 e ' Z, Y/ d1 M3 C# r/ S3 y 点击上方的烧录按钮,将程序下载到板子上。" {9 g* W4 y4 c* B7 b! O ) Q6 f) D, j5 K' @8 _* P& R: m, J
烧录程序 ( g. v# @5 {. T; j$ Q* w2 A 第一次使用时,会打开下图所示界面,保持默认即可,我一般会切换到调试器页面,将下图红框中的Type修改为Software system reset。一般调试器和板子只接SWDIO、SWCLK、GND这三根线,如果你接了别的如NRST等其他的线,可以选择对应的方式。这个功能类似于Keil的Debug->settings->Connect & Reset Options。) Y$ L& B! w/ [& D! ?: d + V" g8 {2 {+ \2 C
9 l& @- F" |) t) b) r+ C 配置复位方式 8 S- n: P7 t/ s# t1 P+ g
Keil中的相同功能配置界面 7 f7 }8 i3 b" P# n1 a' _. w! k 烧录完成后软件将会提示,同时也能看到板子上的LED开始翻转。
- R6 w/ D) l6 [- J: X% I 烧录成功 . R v% z' f- x; b( ]9 ~% V+ T+ l* d7 T# i! c# i* X" M* w$ p* k 如果你的ST-Link版本不是最新版本,下载过程中将会提升更新ST-Link的固件,弹出如下图所示界面。
, O, z8 m1 j4 s 提示更新ST-Link固件版本 $ R7 d8 U. p) y0 f 点击Yes后会打开下面这个页面,依次点击Open in update mode,然后Upgrade即可。ST-Link除了烧录功能外,还带有串口和硬盘功能,如果不需要,也可以在这里配置。
" F# l( Q+ W% d9 n 更新ST-Link固件 , E; S2 ~) s. N8 j3 w/ s i0 g. V8 u |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版