ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-01-01 13:02:34  阅读:196  来源: 互联网

标签:BEGIN CODE END 代码 STM32 USER CubeMX 搭建


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

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

文章目录


前言

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
    在这里插入图片描述
    一些知识的补充

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;
    时钟树配置

  2. 点击顶部的 Pinout & Configuartion,选择SYS,在Debug下拉框中选择Serial Wire;
    sys配置

  3. 点击顶部的 Project Manager,给工程起名,选择存放目录,在Toolchain/IDE中选择MDK-ARM V5;

    注意:路径和名称一定不要包含中文字符,否则你就拿不到你想要的keil代码工程啦。

  4. 点击旁边的 Code Generator,勾选Copy only the necessary library files以及Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral;

  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环境的搭建和生成你的第一个工程文件,大家给自己点个赞,学习单片机还要再接再厉哦

标签:BEGIN,CODE,END,代码,STM32,USER,CubeMX,搭建
来源: https://blog.csdn.net/programmaker3/article/details/112058912

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有