STM32CubeMX如何配置生成项目以及安装包

目录

一、STM32CubeMX介绍

二、用STM32CubeMX生成项目

1.创建项目

2.定义引脚

3.配置时钟

4.保存项目

5.生成项目

6.打开项目


一、STM32CubeMX介绍

STM32CubeMX是STM32Cube工具家族中的一员,专门为STM32微控制器的开发提供便利。它是一款图形化工具,允许用户通过直观的方式完成从MCU/MPU选型、引脚配置、系统时钟以及外设时钟设置,到外设参数配置、中间件参数配置等一系列工作。

本文所用STM32CubeMX版本号为v6.1.0,如果没有安装包的朋友可以从下面下载,由相近版本号的朋友可以直接参考下文生成项目。

https://pan.baidu.com/s/1ed4dt4XKsu7JZzuXHulEPA 
提取码:i8p2

二、用STM32CubeMX生成项目

本文以STM32F429为例,创建一个GPIO口输出的简单项目。

1.创建项目

(1)打开STM32CubeMX主界面以后,点击File按钮,然后点击NewProject按钮。

(2)首先,我们选择系列,点击Series,将STM32F4勾选上。

(3)然后,点击Line,将STM32F429/439勾选上。

(4)我们点击Package选择封装形式,从官方数据手册或技术规格书中得STM32F429IGTx属于LQFP176,LQFP176是一种集成电路(IC)的封装形式,具体来说,它代表了一个具有176个引脚的低轮廓四方扁平封装(Low-profile Quad Flat Package)。

(5)选择STM32F429IG后,点击上面的Start Project。

2.定义引脚

(1)创建项目完成以后,会出现这张引脚分配图,可以清晰的从图中看到引脚分配的情况,vss和vdd的引脚已经被分配。

(2)搜索到PB0以后,PB0引脚会闪动,右键可以将其设置成 output模式。

(3)左边菜单栏,选择Categrpries,然后选择System Core,选择GPIO,可以看到我们刚定义的GPIO_B0,点击对应的行可以对其进行设置。下图中我们将GPlO output level设置成了High,GP10 Pull-up/Pull-down设置成了Pull-up,Maximum output speed设置成了High。

3.配置时钟

(1)打开左边菜单栏,选择RCC,然后将High Speed Clock (HSE) 从disable改成Crystal/Ceramic Resonator来启动HSE时钟源。

(2)打开Clock Configuration模块,默认系统时钟是16MHz,用了HSI作为时钟源,我们将HCLK这里改成180,然后敲回车,软件会自动将系统时钟分配为180MHz,改用HSE倍频的PLL作为时钟源。

4.保存项目

防止STM32CubeMX我们配置的这些丢失,我们先将STM32CubeMX保存。

(1)选择File,然后点击Save Project按钮。

(2)创建一个空白文件夹,选择文件夹,保存的文件名称会和文件夹名称保持一致

5.生成项目

(1)生成项目之前,我们先配置一下项目的基本信息,后面用什么编辑器编辑,比如这里我们选择了MDK5,然后可以根据自己的需求配置一下堆栈的大小

(2)最后点击界面右上角的GENERATE CODE就可以生成这个项目了,注意第一次生成的时候比较慢,因为需要下载对应的固件库

(3)我们打开项目的文件夹,如下图所示,项目就被生成好了。

6.打开项目

打开项目以后,可以看到我们的配置相关代码全被保存到了main文件中,下面是我们配置时钟的代码图。

最后找到了我们配置的GPIO_B0引脚输出的相关代码,这个软件配置还是比较好用的,并且生成的hal库代码再移植到其他stm32芯片的项目中也十分方便。

static void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOH_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

  /*Configure GPIO pin : PB0 */
  GPIO_InitStruct.Pin = GPIO_PIN_0;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

}

  • 39
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千千道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值