CubeMX新建工程详细步骤

PS:写在最前(本文是在深入参考了正点原子提供的STM32F407探索者指南的基础上,结合个人的学习心得与深入理解所撰写的。)

使用 STM32CubeMX 配置工程的一般步骤为:

1.工程初步建立(新建工程,选择芯片的型号)

2.HSE和LSE时钟源设置(时钟模块设置)

3.时钟系统(时钟树)配置(包括PLL、SYSCLK、AHB、APB1、APB2等)

4.GPIO功能引脚配置

5.Cortex-M4内核基本配置(限定项)即SYS(DEBUG)配置、NVIC优先级分组

6.生成工程源码

7.用户程序(main.c)

PS:使用Cubemx的时候,创建文档,需要先修改一下路径。

先点击Help

1b3f86b4de8940bb949174ecd11a9c11.png

再点击

2ffdeabddc2c498d833bd073584ce44f.png

免得都存在C盘里。

1.工程初步建立

         新建工程有两个方法:

方法一:可以点击“File”,“New Project”即可建新工程。

fa0e3c7f15de413b87e48f47c6d06fef.png

方法二:直接点击 ACCESS TO MCU SELECTOR选项

228e315acea6401d94e7f77318ed15c7.png

随后会进入到芯片选型的界面,可自行根据项目需求选择相应的MCU。

b0ba1d3f313e45898c643bd2a7ec15cf.png

芯片型号选择后会弹出图形化界面。

9dbceca943904f1b955a9e24e1f4e642.png

 

2.HSE和LSE时钟源设置

进入图形化设计界面后,首先需要设置时钟源HSE和LSE。

依此点击Pinout&Configuration->RCC->HSE以及LSE,均选择Crystal/Ceramic Resonator,表示外部晶振作为它们的时钟源。查询MCU外围电路的原理图可得其外部高速晶振和外部低速晶振分别是:8MHz和32.768KHz,因此HSE时钟频率就是8MHz,LSE时钟频率就是32.768KHz。

a634fb8f74a048dd8b8b90adde41ffe5.png

根据需求配置,用的最多的HSE高速外部时钟。

324d9adeee63471f9fa5b8b665379047.png

选择Crystal晶振。

3.时钟系统(时钟树)配置

点击Clock Configuration选项卡可弹出时钟树界面,主要配置外部晶振大小,分频系数,倍频系数以及选择器。LSE时钟主要配置看门狗以及RTC,倘若没用到这些外设可以暂时不配置。系统时钟的范围:在数据手册(产品手册)里面可以找到。其时钟必须在其工作限定之内。

31ee490a762644b4a21c2127d141138d.png5a4a0d96757f416796503b5d11c26cb4.png

PS:实在不了解时钟可以在HCLK输入框,直接输入我们要的时钟频率,这里是72MHz,摁下回车,其会自动配置,CubeMX会帮我们提供一种设置时钟频率和其它时钟的建议。

70a338536c074b7faf9b632d33f9a0f0.png

4.GPIO 功能引脚配置

以PE5及PB5两个GPIO口点亮LED灯为例,配置其引脚功能,可在右下角搜索框中搜索需要的引脚。

c2ba2b8198494665baf28ee00a7d82a5.png

点击PF5及PB5,在弹出的下拉菜单中,选择IO口的功能为GPIO_Output。IO口功能配置完之后,还要配置IO口的速度,上下拉等参数。这些参数通过System Core下的GPIO选项进行配置。GPIO mode我们已经在视图中配置为推挽输出了,这里不需要修改。GPIO Pull-up/Pull-down 默认是无上下拉,我们这里用默认配置。Maximum output speed 输出速度配置,默认是低速,我们设置为高速。User Label 用户符号,我们可以给PF5起一个别名 LED0。PB5也是按照这样的方法配置起一个别名LED1。

ed42cd2517b848e2b38bfc5f46781027.png

5.Cortex-M4 内核基本配置(限定项)

由于CubeMX默认关闭Debug选项,因此我们需要在SYS选项里需要选择debug功能,不然无法下载。

7d38b16adff84aa2bc4e27de47652ab4.png

9a0dd9bb368a4da18ec2e6bf2b39d471.png选择串行即可。

在Project Manager界面里面需要设置一些选项。首先是Project Name(工程名称)以及Project Location(工程保存路径)不能有中文字符。

e0258b2e295f430c9c8432c4b1a4bee0.png

Toolchain Folder Location:工具链文件夹位置,默认即可。

Application Structure:应用的结构,选择Basic(基础),不勾选Do not generate the main(),因为需要其生成main函数。PS:advanced型和basic型的区别

a2a2ad703b114c64a6884b6e6550aa2e.png

advanced型和basic型的格式不同,一般推荐选择基础型,头文件和C文件分开放置。

选择MDK-ARM,就可以用keil打开。

9374f3e07832491587f27e3efde76257.png

在Code Genernated里面配置。

f7018c2344fb468abf42b734eeea00b6.png

勾选 Generate peripheral initialization as a pir of ‘.c/.h’ files per peripheral,勾选这个选项的话将会将每个外设单独分开成一组.c、.h 文件。

6.生成工程源码

点击SENERATE CODE即可生成工程源码。

13669d09f07d4cc0bc2c697d60dd45f6.png

完整的工程生成完毕后,其结构如下所示:

1eb120a8f0dc4bb8aee9e0f9ae01e08c.png

Drivers 文件夹存放的是 HAL 库文件和 CMSIS 相关文件。

MDK-ARM 下面存放的是 MDK 工程文件。

Src 文件夹下面存放的是工程必须的部分源文件。

Atk-f103.ioc是STM32CubeMX工程文件,双击该文件就会在 STM32CubeMX 中打开。

7.用户程序

7a3d3ce84c494b18a78c14f601aebec9.png

PS:需要注意的是,STM32CubeMX 生成的 main.c 文件中,有很多地方有“/* USER CODE

BEGIN X */”和“/* USER CODE END X */”格式的注释,我们需要在这些注释的 BEGIN END之间编写代码,只有这样重新生成工程之后,这些代码会保留而不会被覆盖

 

 

 

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值