STM32 CubeMX学习:0. 搭建开发环境

STM32 CubeMX学习:0. 搭建开发环境

系列文章目录
  1. 前期的准备
  2. 点亮 LED
  3. 闪烁 LED
  4. 定时器闪烁LED
  5. 未完待续…

文章目录

  • STM32 CubeMX学习:0. 搭建开发环境
  • 前言
  • 0.1 软件的安装
  • 0.2 软件使用
  • 0.3 新建工程
  • 总结


前言

CubeMx 是一个 由 ST 推出的芯片图形化配置工具,为了使开发者尽可能地可以不再关心底层,允许用户使用图形化向导生成C初始化代码。

0.1 软件的安装

在网上有很多安装的相关教程,我这里不做过多的介绍,直接给出我目前的开发环境配置

HOST-OS : 		Windows-10 pro
STM32 Cube :	v5.6
MCU : 			STM32F407
LIB : 			stm32cube_fw_f4_v1250
KEIL:  			MDK V5

注意:使用CubeMX软件需要提前安装对应版本的Java环境,只需安装jre即可
我这里使用的CubeMX版本为5.6,官方推荐使用Java8

0.2 软件使用

看到这里,相信大家已经安装好了CubeMx
如果是第一次安装的话,也要把HAL的包下载好:
下载包
(1)打开软件
(2)Help --> Manage embeded software packages
(3)勾选对应的芯片包,Install now (stm32cube_fw_f4_v1250.zip)

注意:包的位置可以通过: Help -> Updater Settings中的Repository Folder重新指定,这样大家就不怕软件撑破自己的C盘啦

0.3 新建工程

  1. 打开CubeMX软件,在file选项里选择“New Project”

  2. 搜索“STM32F407ZG",选择"STM32F407ZGTx"

  3. 在Cystem Core 下选择RCC选项,在RCC mode and Configuration 中的 High Speed Clock(HSE)下选择Crystal/Ceramic Resonator
    STM32 CubeMX学习:0. 搭建开发环境_第1张图片
    一些知识的补充

STM32CubeMX中外部时钟配置可选类型为 
Disable 、 BYPASS Clock Source(旁路时钟源) 、Crystal/Ceramic Resonator(石英/陶瓷 晶振) 三种类型。

旁路时钟源:指无需使用外部晶体时所需的芯片内部时钟驱动组件,直接从外界导入时钟信号。
犹如芯片内部的驱动组件被旁路了。只需要外部提供时钟接入OSC_IN引脚,而OSC_OUT引脚悬空。

外部晶体/陶瓷谐振器(HSE晶体)模式:该时钟源是由外部无源晶体与MCU内部时钟驱动电路共同配合形成,
有一定的启动时间,精度较高。OSC_IN 与 OSC_OUT引脚都要连接。
  1. 点击顶部的 Clock Configuration,进行主频配置;将Input frequecncy设置为12,点击旁边的HSE圆形按钮,配置/M为/6,配置*N为X168,配置/P为/2 ,选择PLLCLK圆形按钮,配置APB1 Prescaler为/4,配置APB2 Prescaler为/2;
    STM32 CubeMX学习:0. 搭建开发环境_第2张图片

  2. 点击顶部的 Pinout & Configuartion,选择SYS,在Debug下拉框中选择Serial Wire;
    STM32 CubeMX学习:0. 搭建开发环境_第3张图片

  3. 点击顶部的 Project Manager,给工程起名,选择存放目录,在Toolchain/IDE中选择MDK-ARM V5;
    STM32 CubeMX学习:0. 搭建开发环境_第4张图片
    注意:路径和名称一定不要包含中文字符,否则你就拿不到你想要的keil代码工程啦。

  4. 点击旁边的 Code Generator,勾选Copy only the necessary library files以及Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral;
    STM32 CubeMX学习:0. 搭建开发环境_第5张图片

  5. 点击顶部的GENERATE CODE,等待代码生成,打开工程。
    生成

  6. 注意事项
    CubeMX 生成的代码 会有一些特殊的注释,这些注释对于 CubeMx 是有意义的,用户的代码只能写在位于 USER CODE BEGIN …与USER CODE END …之间(自己建立的源码文件不受影响)。否则,当对于 CubeMx 进行重新配置的时候,代码可能会因为被覆盖而消失。例如:

int main(void)`在这里插入代码片`
{
     
  /* USER CODE BEGIN 1 */
    用户可编写的代码区
  /* USER CODE END 1 */
  

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */
    用户可编写的代码区
  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */
    用户可编写的代码区
  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
    用户可编写的代码区
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
     
    用户可编写的代码区
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}



总结

以上就是今天要讲的内容,本文主要介绍了CubeMX环境的搭建和生成你的第一个工程文件,大家给自己点个赞,学习单片机还要再接再厉哦

你可能感兴趣的:(cubemx,单片机,stm32)