STM32CubeMX 新建工程详细步骤

这篇具有很好参考价值的文章主要介绍了STM32CubeMX 新建工程详细步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.MPU/CPU选择

step1: 打开CubeMX 软件, 在主页面上 点击如下按钮,进入芯片选择界面

STM32CubeMX 新建工程详细步骤

step2: 在Part Number Search 栏搜索我们需要用到的芯片型号,比如这里我们选择 STM32F103C8

STM32CubeMX 新建工程详细步骤
选中某一型号时,会在页面右边显示该芯片的详细参数和信息,其中 Features 可以查看该芯片的具体特点和外设, 还可以点击Datasheet 下载数据手册。在芯片选择页面的右下方有芯片的信息概要,比如这里包括该型号芯片的 引脚疯转,Flash, Ram, IO 数量, 主频等基本信息。确定了芯片型号之后,双击上图中我们选择的芯片,进入工程配置界面。

2.片内外设配置

在工程配置页面中有外设配置,时钟配置,和工程配置。这里我们先讲解如何配置这些片内外设CubeMX STM32所有外设都进行了分类,比如这里的 STM32F103C8T6 的所有外设就被分成了一共6类:系统内核、模拟、定时器、通信、计算、中间件.
STM32CubeMX 新建工程详细步骤
上面的片内外设用户需要根据自己项目的使用情况而进行选择配置,但是对于绝大部分的项目来说 ,都需要配置时钟:

系统内核中的 RCC&SYS 项都必须要进行设置

RCC配置,如果需要用 LSE / HSE 就需要在这进行配置
STM32CubeMX 新建工程详细步骤
SYS配置, 关于 debug 口子的配置,默认它是认为我们不需要 debug 口的,所以如果不更改的话生成代码下载进去后 debug 口就关闭了。
注意: STM32CubeMX 使用的 HAL 库有一个 delay 接口默认是使用 SysTick 定时器来实现的,如果我们选用了 FreeRTOS,它使用的心跳时钟在 Cortex 内核上的移植都是依赖于 SysTick 定时器,这里就会有冲突,这一点在点击生成代码按钮时 STM32CubeMX 也会发出警告,这里最好就把 HAL 库定时器使用的时基修改为 TIMER1 - TIMER4中的任一就行。

芯片引脚配置

一般根据需要对GPIO口进行相应配置,GPIO可配置为一般输入输出,复用为其他引脚功能等。绿色表示配置完成,橙色表示待配置。
STM32CubeMX 新建工程详细步骤

3.时钟配置

选中时钟配置栏,进入时钟配置界面

首先我们在这里对单片机的系统时钟源做一个简单的解释,对于STM32来说总共有4个时钟源。
STM32的四个时钟源高速外部时钟(HSE):外部时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。低速外部时钟(LSE):外部时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz,但不稳定。低速内部时钟(LSI):由内部RC振荡器产生,也主要提供给实时时钟模块,频率大约为40KHz。
STM32CubeMX 新建工程详细步骤
对于单片机的系统主时钟。我们一般选用高速时钟 HSE或者HSI(系统默认), 上图中时钟配置为 HSE,HSE时钟配置流程主要分为以下几步:
1)HSE直接分频后作为 PLL Source Mux选择器的输入 ,
2)之后通过锁相环 9倍频 后输入到 System Clock Mux
3) System Clock Mux 直接输出得到系统主时钟 SYSCLK 72Mhz
4) SYSCLK 经过分频器得到高速时钟 HCLK (这里分频系数为1 所以HCLK也为72MHZ)
5) HCLK 后面又分为了5条路径

  • a.直接作为 AHB总线时钟,作为 内核,内存,DMA等的时钟
  • b. 分频后作为 Cortex 系统定时器的时钟源
  • c.直接作为 FCLK时钟
  • d.分频后作为 APB1总线的时钟 (包括分频后 作为APB1外设时钟 也叫做PCLK1 , 分频后再倍频作为 APB1总线上定时器的时钟)
  • e.分频后作为 APB2总线的时钟 (包括分频后作为APB2外设时钟 也叫做PCLK2, 分频后再倍频作为APB2总线上定时器的时钟, 以及分频后再分频作为ADC的时钟)

通过上面配置就完成了从 HSE 到 系统主时钟全部过程的配置, 若板子上面没有提供外部高速晶振,我们就只有使用内部高速晶振了,其配置过程的原理也是类似的,这里就不再赘述了。
如果项目中还用到了 RTC,IWDG等外设,那就还需要另外配置低速时钟。至此我们时钟配置也就基本完成了。

4.工程管理器

最后通过工程管理器 Project Manager 来对整个CubeMx工程来进行最后的配置
STM32CubeMX的 Project Manager工程管理器包含:Project 工程管理、Code Generator 代码生成、Advanced Settings 高级设置。

4.1 Project

Project工程管理包含三部分内容:
Projcet Settings工程设置、
Linker Settings堆栈设置、
Mcu and Firmware Package MCU和固件包信息。
STM32CubeMX 新建工程详细步骤

4.1.1 Project Setting

  • A.Project Name:工程名称比如:MotorControl.uvprojx,以及对应工程里面目标名称。
  • B.Project Location:工程存放路径这个容易理解。如:E:\Proteus
  • C.Application Struture:应用程序结构这里包含两个选项:Basic 和 Advanced。Basic:是基础的结构,一般不包含中间件(RTOS、文件系统、USB设备等)。Advanced:相反就是包含中间件,一般针对相对复杂一点的工程。当然,这两种生成的结构都比较基础,一般实际项目都会重新整理一遍软件架构。
  • D.Toolchain Folder Location:工具链文件夹路径这个是根据上面Project Name和Project Location得出来的,用户不能修改。
  • E.Toolchain/IDE:工具链选择·EWARM ,MDK-ARM和TrueSTUDIO,STM32CubeIDE,Makefile等,如果配合使用Keil IDE,此处就选择MDK-ARM。

4.1.2 Linker Setting

STM32CubeMX 新建工程详细步骤
这里的选项一看就明白,主要就是堆和栈大小的设置,默认缺省值:Heap堆为0x200,Stack栈为0x400.

4.1.3 Mcu and Firmware Package (MCU和固件包信息)

这里有三个选项,关于MCU类型和固件包版本信息,一般默认配置。

  • A.Mcu Reference:MCU参考型号这个是根据你选择的MCU型号决定的,用户不能修改。
  • B.Firmware Package Name and Version:固件包名称和版本信息这个容易理解,如:STM32Cube_FW_F1_V1.8.4.
  • C.Use Default Firmware Location:使用默认固件包这里勾选上就会根据系统进行默认匹配固件包,一般建议默认。当然,不勾选,可以自己选择指定固件包。

4.2 Code Generator

STM32CubeMX 新建工程详细步骤
如上图,主要包含四项内容:固件包拷贝、生成文件、HAL设置、模板设置。

4.2.1 STM32Cube Firmware Library Package固件包拷贝

  • 1.Copy all used libraries into the project folder 将所有使用过的库复制到项目文件夹中不管你用,还是没有用到,都拷贝到你工程目录下。这样一来,你工程下文件就比较多,不建议使用。
  • 2.Copy only the necessary library files 只复制必要的库文件。这个相比上一个减少了很多文件。比如你没有使用CAN、SPI…等外设,就不会拷贝相关库文件到你工程下。建议使用此项,这样工程路径改变不影响编译。
  • 3.Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为参考。这里没有复制HAL库文件,只添加了必要文件(如main.c)。相比上面,没有Drivers相关文件。

4.2.2 Generated files 生成文件

这里可以多选,每项可选择:是or不是。

  • 1.Generate peripheral initialization as a pair of’.c/.h’ files per peripheral 每个外设生成独立的’.c/.h’文件不勾:所有初始化代码都生成在main.c勾选:初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中。
  • 2.Backup previously generated files when regenerating 在重新生成时备份以前生成的文件重新生成代码时,会在相关目录中生成一个Backup文件夹,将之前源文件拷贝到其中。
  • 3.Keep User Code when re-generating 在重新生成时保留用户代码比如:我在main.c中添加了一段代码,重新生成时,会在main.c中保留你之前自己添加的这段代码。注意:前提是这段代码写在规定的位置。也就是BEGIN和END之间。否则同样会删除。
  • 4.Delete previously generated files when not re-generated 删除以前生成,但现在没有生成的文件比如:之前生成了spi.c,现在重新配置没有spi.c,则会删除之前的spi.c文件

4.2.3 HAL Settings HAL库设置

  • 1.Set all free pins as analog (to optimize the power consumption) 将所有空闲引脚设置为模拟(以优化功耗)这个做低功耗产品时这个选项有必要勾选。
  • 2.Enable Full Assert 使能所有断言

4.2.4 Template Settings模板设置

1.Select a template to generate customized code
选择一个模板来生成自定义代码代码自定义生成模板。

第一项和第二项设置好,其他一般默认选项。

4.3 Advanced Settings

目前暂时只有两个选项:驱动选择和调用函数设置
STM32CubeMX 新建工程详细步骤

4.3.1 驱动选择

目前主要就是针对工程中使用到的外设,选择HAL还是LL驱动(参看上图)。 提示:目前有些型号MCU的部分外设没有LL驱动。
注:ST公司提供了一套固件库函数包括ST标准库、LL库和HAL库,ST公司主推HAL库。

  • ST标准库:ST官方首先推出对底层寄存器封装的库,库思想是面向过程的,仅对寄存器进行了一层封装操作,适于初学STM32的人群。
  • LL库:操作底层硬件的库,配合CubeMX开发,适于追求效率需要加快开发周期的人群。(新推出,配合HAL库,可以认为是ST库移植到Cube下的实现。)
  • HAL库:面向对象的,操作抽象层的,经过多层封装对功能进行集成,对硬件要求不高,适于开发应用人群。

4.3.2 调用函数

主要关心后面两个选项:Not Generate Function Call 和 Visibility (Static)。

  • a. Not Generate Function Call不生成函数调用也就是你代码不调用对应初始化函数。比如:你GPIO项勾选Not Generate Function Call,你main.c函数中就不会调用MX_GPIO_Init这个函数。
  • b. Visibility (Static)可见性(静态)这个就是初始化代码声明为static。
    注意:A.有些选项是是默认值,不能修改。如SystemClock_Config配置不声明为ststic.
    B.使用static是配合上面Code Generator代码生成章节中Generated files生成文件使用。如果都生成.c .h独立文件了,就不会生成static了。

参考:https://xw.qq.com/cmsid/20211108A05SFS00文章来源地址https://www.toymoban.com/news/detail-401127.html

到了这里,关于STM32CubeMX 新建工程详细步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】STM32CubeMX教程一--基本使用(新建工程点亮LED灯)

    前言 在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMX的基本使用和如何创建一个新的工程并且点亮LED灯 在新建工程时,我们分为了具体流程1~7,如果您不想看每部分的讲解,直接按照流程操作即可,5分钟即可

    2024年02月09日
    浏览(50)
  • STM32f103入门 CubeMX使用教程--安装教程及新建工程

    1、STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。 在CubeMX上,通过傻瓜化的操作便

    2024年02月11日
    浏览(40)
  • 【07】STM32·HAL库开发-新建寄存器版本MDK工程 |下载STM32Cube固件包 | 新建MDK工程步骤

    获取方式一 :ST官网搜索STM32Cube+回车   这里以F1系列为例,点击【STM32CubeF1】   点击【Get Software】即可进行下载,首次下载需要注册邮箱, 是免费的 。    这里下载最新的1.8.5版本为例进行后期章节编写。 获取方式二 :正点原子开发板A盘资料:A 盘→8,STM32 参考资料

    2024年02月11日
    浏览(60)
  • STM32新建工程详细教程

    链接: https://pan.baidu.com/s/1JtjKg_jeo7U2irD4hLd_bg?pwd=45cw 提取码: 45cw  STM32的开发方式 目前stm32的开发方式主要有基于寄存器的方式、基于标准库的方式(库函数的方式)、基于HAL库的方式。 基于库函数的方式是使用ST官方提供的封装好的函数,通过调用这些函数来间接地配置寄存器

    2024年01月19日
    浏览(42)
  • 【CubeMX配置STM32驱动MPU6050】

    一、使用CubeMX进行相关配置 1、配置OLED的IIC接口 OLED的具体使用方法我就不细说了,我前面的文章里面有讲OLED的,如果有需要可以去看看。 2、配置MPU6050的接口 我用MPU6050使用的是 软件IIC (其实是只找到软件IIC的驱动),所以我们只需要配置两个GPIO口就可以实现对MPU6050的控

    2024年02月12日
    浏览(46)
  • stm32 mpu6050 cubemx DMP法读取角度

    文件 记录使用dmp库来读取mpu6050的角度。 这是参考文件 参考1–主要参考 github参考 参考2 参考三 相关文件在这里下载(未填,不过可以在上面的git中下载) over

    2024年02月15日
    浏览(51)
  • stm32cubemx配置mpu6050——10分钟0基础到灵活使用

    10分钟速通!你没看错,就是10min,从0基础到灵活运用mpu6050。 不信?往下看看就会:嗷~原来如此 下载github开源代码。 首先声明,此代码不是本人所写,为某俄罗斯大佬提供。 如果你访问不了github不用担心,我在文章最后附上下载下来的文件 软件 根据github开源项目的Readm

    2024年02月03日
    浏览(42)
  • 【STM32+cubemx】0027 HAL库开发:MPU6050陀螺仪和加速度计数据的获取和校准

    在制作平衡车或者飞行器时,不可避免地需要知道设备本身的姿态,一般我们使用陀螺仪和加速度计来获取这些信息。 陀螺仪用来测量物体的角度。传统的机械式陀螺的原理,和我们小时候玩的陀螺一样,是利用了高速旋转的物体能保持轴线稳定的特性;机械式陀螺需要的加

    2023年04月08日
    浏览(48)
  • STM32新建工程

    目录 1. 第一步新建工程文件夹,然后选择芯片 1.1新建工程  1.2选择芯片 2.  第二步在工程中新建3个文件夹 Start ,User,Library  3. 第三步 将固件库中的文件复制到工程中 3.1 Start文件夹 3.2 Libray文件夹  3.3 User文件夹 4. 第四步添加组文件 4.1  添加3个新的组 4.2 添加Start组中的内容

    2024年02月15日
    浏览(38)
  • 【STM32】STM32CubeMX创建第一个工程

    STM32CubeMX是STM32Cube工具家族中的一员,从MCU/MPU选型,引脚配置,系统时钟以及外设时钟设置,到外设参数配置,中间件参数配置,它给STM32开发者们提供了一种简单,方便,并且直观的方式来完成这些工作。所有的配置完成后,它还可以根据所选的IDE生成对应的工程和初始化

    2024年04月09日
    浏览(97)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包