打印
[其他ST产品]

强大的 STM32Cube 生态 && STM32CubeIDE 无伤速通

[复制链接]
楼主: xiyaoko2365
手机看帖
扫描二维码
随时随地手机跟帖
21
xiyaoko2365|  楼主 | 2023-12-19 16:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
STM32CubeMonitor系列工具的功能比较:

使用特权

评论回复
22
xiyaoko2365|  楼主 | 2023-12-19 16:39 | 只看该作者
五、软件的实际使用:简单使用
简单的示例:使用STM32CubeIDE创建一个STM32F103C8T6的工程,实现点亮LED的功能。

5.1 完整步骤
步骤一:登录STM32账号

首先在IDE中登录ST的账号(没有先去官网注册),菜单栏最后一个myST ,登录成功后会显示Hello name。

这是必要步骤。

使用特权

评论回复
23
xiyaoko2365|  楼主 | 2023-12-19 16:40 | 只看该作者
步骤二:创建工程

打开STM32CubeIDE,选择一个工作区(workspace),也可以设置为每次都使用这个工作区,以后打开软件就不会有这个弹窗。

然后点击[File]>[New]>[STM32 Project],启动STM32工程向导。(或者直接在information center界面点击Start new STM32 project )

在弹出的对话框中,输入或选择目标MCU为STM32F103C8T6,然后点击[Next]。可以在前面加星标,方便以后创建工程的时候使用。

使用特权

评论回复
24
xiyaoko2365|  楼主 | 2023-12-19 16:40 | 只看该作者
在下一个对话框中,输入工程名称,选择目标语言为C,目标文件类型为Executable,工程类型为STM32Cube,然后点击[Next]。

使用特权

评论回复
25
xiyaoko2365|  楼主 | 2023-12-19 16:40 | 只看该作者
在下一个对话框中,选择所需的代码生成选项,例如是否复制所有用到的库文件到工程目录中,是否生成初始化代码等,然后点击[Finish]。


使用特权

评论回复
26
xiyaoko2365|  楼主 | 2023-12-19 16:41 | 只看该作者
现在会生成一些初始化代码,其中有一个是ioc文件,IOC是"Integrated Operation Center"(集成操作中心)的缩写。用于保存STM32微控制器的配置信息和项目设置,包括引脚、时钟、中断、外设、电源、FreeRTOS。

使用特权

评论回复
27
xiyaoko2365|  楼主 | 2023-12-19 16:41 | 只看该作者
步骤三:配置引脚

默认会打开STM32CubeMX窗口(xxx.ioc),在这里可以配置外设、时钟、中间件和功耗。由于本文只需要点亮LED,所以只需要配置GPIO引脚即可。本文使用的是PC13引脚连接LED。
在Pinout & Configuration选项卡中,在pinout view视图中点击PC13,设置为GPIO_Output(默认为Output Push Pull),然后右键Enter User Label,将GPIO port命名为LED。(也可以继续在左侧点击GPIO进行更多设置)

使用特权

评论回复
28
xiyaoko2365|  楼主 | 2023-12-19 16:42 | 只看该作者
步骤四:配置时钟

使用核心板上的高速外部晶振HSE。

在Pinout & Configuration选项卡中,选择system Core 下面的RCC,将HSE的状态设置为:Crystal/Ceramic Resonator。

使用特权

评论回复
29
xiyaoko2365|  楼主 | 2023-12-19 16:42 | 只看该作者
在Clock Configuration选项卡中配置时钟源和时钟频率。具体步骤如下:
在HSE处选择Crystal/Ceramic Resonator,表示使用外部晶体振荡器作为HSE时钟源。
在PLL Source Mux处选择HSE,表示使用HSE作为PLL的输入时钟源。
在PLL MUL处选择9,表示将PLL的输入时钟乘以9倍,得到72 MHz的输出时钟。
在SYSCLK Mux处选择PLLCLK,表示使用PLL的输出时钟作为系统时钟。
在AHB Prescaler处选择/1,表示不分频系统时钟,得到72 MHz的AHB总线时钟。
在APB1 Prescaler处选择/2,表示将AHB总线时钟分频2倍,得到36 MHz的APB1总线时钟。
在APB2 Prescaler处选择/1,表示不分频AHB总线时钟,得到72 MHz的APB2总线时钟。

使用特权

评论回复
30
xiyaoko2365|  楼主 | 2023-12-19 16:42 | 只看该作者

使用特权

评论回复
31
xiyaoko2365|  楼主 | 2023-12-19 16:43 | 只看该作者
步骤五:生成代码

然后点击Project Manager选项卡,在Code Generator选项中勾选Generate peripheral initialization as a pair of ‘.c/.h’ files per (生成外设初始化源文件和头文件)。
ctrl s,生成代码。

使用特权

评论回复
32
xiyaoko2365|  楼主 | 2023-12-19 16:43 | 只看该作者

使用特权

评论回复
33
xiyaoko2365|  楼主 | 2023-12-19 16:43 | 只看该作者
步骤六:编写用户代码并编译

回到STM32CubeIDE中,在Core/Src/main.c文件中,在main函数中,找到while(1)循环,在其中添加如下代码:
HAL_GPIO_TogglePin(LED_GPIO_Port, GPIO_PIN_13); // 翻转LED状态
HAL_Delay(300); // 延时300毫秒

使用特权

评论回复
34
xiyaoko2365|  楼主 | 2023-12-19 16:44 | 只看该作者
点击工具栏上的编译图标(锤子形状),编译工程。如果没有错误或警告,就可以将程序烧录到目标板上。

使用特权

评论回复
35
xiyaoko2365|  楼主 | 2023-12-19 16:44 | 只看该作者
步骤七:调试与下载

更新ST-Link固件。

把ST-Link与MCU断开连接,然后插到电脑上;
点击菜单栏的帮助下面的ST-Link更新;
按照指示更新即可

使用特权

评论回复
36
xiyaoko2365|  楼主 | 2023-12-19 16:44 | 只看该作者
点击运行或者调试按钮,都会将程序下载到MCU。如果你不需要调试,就点击运行。

使用特权

评论回复
37
xiyaoko2365|  楼主 | 2023-12-19 16:45 | 只看该作者
5.2 拓展
默认是生成elf文件的,它与hex的区别是:

使用特权

评论回复
38
xiyaoko2365|  楼主 | 2023-12-19 16:45 | 只看该作者
如果要生成hex文件,可以在项目名称上右击,点击属性,按照如下设置:

使用特权

评论回复
39
xiyaoko2365|  楼主 | 2023-12-19 16:46 | 只看该作者
也可以使用STM32CubeProgrammer下载程序:

打开STM32CubeProgrammer,选择ST-LINK作为连接方式,点击Connect按钮,连接到目标芯片。
在Erasing & Programming选项卡中,点击Browse按钮,选择要下载的hex或者elf文件。
点击Start Programming按钮,开始下载程序到目标芯片中。

使用特权

评论回复
40
xiyaoko2365|  楼主 | 2023-12-19 16:46 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则