STM32CubeMX教程之简介及基本使用

STM32CubeMX教程之简介及基本使用STM32CubeMX是意法半导体推出的图形化配置工具,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IARForARM、TrueStudio等。尤其值得一提的是,TrueStudio已经被ST收购,提供完全免费的版本,并且,通过插件式安装,可以将STM32CubeMX集成在一个IDE,使用十分方便。如下图:图1TrueStudio中的STM32Cub…

大家好,又见面了,我是你们的朋友全栈君。

STM32CubeMX是意法半导体推出的图形化配置工具,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等。尤其值得一提的是,TrueStudio已经被ST收购,提供完全免费的版本,并且,通过插件式安装,可以将STM32CubeMX集成在一个IDE,使用十分方便。如下图:

STM32CubeMX教程之简介及基本使用

图1 TrueStudio中的STM32CubeMX

接下来将分步骤介绍使用STM32CubmeMX及MDK、STM32CubmeMX及TrueStudio进行STM32程序设计。

一、新建工程(方式1 使用ST官方的开发板)

打开STM32CubmeMX,在主界面选择New Project,在弹出来的对话框中可以选择基于芯片创建工程还是基于特定开发板创建工程,如图2。

STM32CubeMX教程之简介及基本使用

图2  芯片或者开发板选择

此处,我们选择Board Selector,并进一步选择我使用的开发板NUCLEO-F401RE,选中后如图3所示。

STM32CubeMX教程之简介及基本使用

图3 开发板或者芯片选择

双击该开发板选项,会提示是否采用默认模式初始化所有外设,我选择YES,结果如图4所示。

STM32CubeMX教程之简介及基本使用

图中可见,已经完成了初步的配置,并且用不同的颜色进行标识。在左边树状图中,如果该外设能够正常使用,则为绿色,比如本例中的USART2,如果是部分冲突,则会以黄色警告图标STM32CubeMX教程之简介及基本使用的方式进行提醒,比如,此处的ADC1。将鼠标移至黄色叹号处,可以看到图5所示文字。告诉开发人员,ADC1与PA5以及USART2的当前配置冲突了,因为我们现在将PA5配置为输出、USART2配置为异步串行通信了。点开ADC1前面的加号,则能更清晰看到具体冲突的ADC通道,如图6所示。

STM32CubeMX教程之简介及基本使用

图5  ADC1警告

STM32CubeMX教程之简介及基本使用

图6 ADC1具体冲突的地方

同样的,我们将鼠标光标放在STM32CubeMX教程之简介及基本使用上,可以看到,图7所示提示。告诉我们I2C2不可用,因为PB3脚已经映射为SYS_JTDO-SWO。

STM32CubeMX教程之简介及基本使用

图7 冲突导致某功能不能使用

由于本例使用了默认配置进行初始化,我们需要做的工作就少了许多,在下一章节中将介绍更接近于实际应用的工程创建方式。

二、项目设置

与很多软件一样,STM32CubeMX也可以进行工程的设置,通过菜单Project->Settings便可进入图8所示工程设置对话框。

STM32CubeMX教程之简介及基本使用

图8 Project Settings

点击Code Generator,进行进一步配置,如图9所示。

STM32CubeMX教程之简介及基本使用

STM32CubeMX教程之简介及基本使用

STM32CubeMX教程之简介及基本使用

STM32CubeMX教程之简介及基本使用

图9 代码生成设置

如果后续不需要新增其他外设,建议Copy necessary,如果后续需要新增其他外设又可能不再用STM32CubeMX,建议Copy all,如果不太会复制到其他地方或者大家的库都放在同一个路径,可以选用Reference,比较节约硬盘空间。

三、修改代码

所有自己编写的代码请放在/* USER CODE BEGIN XXX */   /* USER CODE END XXX */之间,比如我们需要新增加的头文件,放在/* USER CODE BEGIN Includes */  /* USER CODE END Includes */之间,需要增加的全局变量放在/* USER CODE BEGIN PV */ /* USER CODE END PV */之间等。

STM32CubeMX教程之简介及基本使用

图10 自己编写代码的区域

本例实现LED灯LD2以1Hz频率连续闪烁,在while(1)中增加如下代码即可。

 /* USER CODE BEGIN WHILE */
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
     HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin);
     HAL_Delay(500);
  }
  /* USER CODE END 3 */

四、配置下载工具

在工程文件右键,进行相关配置,如图11所示。

STM32CubeMX教程之简介及基本使用

图11 仿真工具配置

一切OK,编译STM32CubeMX教程之简介及基本使用,下载STM32CubeMX教程之简介及基本使用,便可验收成果了,祝君顺利!欢迎交流:

STM32CubeMX教程之简介及基本使用

本例示例代码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135576.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 测试环境和生产环境数据同步_Django开发测试生产环境

    测试环境和生产环境数据同步_Django开发测试生产环境一、五种环境1、开发环境(DEV):开发环境是程序猿们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告。2、测试环境(UAT):一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。3、生产环境(PROD):是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。可以理解为包含所有的功能的环境,任何项目所使用的环境都以这…

    2022年9月30日
    3
  • uuid生成唯一数字_java组件有哪些

    uuid生成唯一数字_java组件有哪些UUID含义是通用唯一识别码(UniversallyUniqueIdentifier),这是一个软件建构的标准,也是被开源软件基金会(OpenSoftwareFoundation,OSF)的组织在分布式计算环境(DistributedComputingEnvironment,DCE)领域的一部份。UUID的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需

    2022年9月22日
    5
  • 101DIY_inoty9

    101DIY_inoty9前言:Indy在2006年已经开始移植到FPC下,但是由于各种原因一直更新得比较缓慢,现在官网上的最新版本发布时间是2007年底。随着Delphi2009(Tiburn)的发布,Indy团队已经将f

    2022年8月3日
    8
  • linux查看jdk安装目录

    linux查看jdk安装目录1 安装包方式安装的 jdk 如果是现在安装包安装的话 一般都会配置环境变量 echo JAVA HOME 或者查看 etc profilevi etc profile nbsp 2 yum 安装 nbsp 查看安装目录 nbsp nbsp 本人比较懒 就用的 yum 安装的 nbsp nbsp 先找到 javad 的执行目录 nbsp nbsp whereisjava 通过执行文件找到链接文件 ls lrt usr bin

    2025年8月25日
    5
  • windows10上安装mysql(详细步骤)

    windows10上安装mysql(详细步骤)windows安装mysql(详细步骤)环境:windwos10(1511)、mysql5.7.14时间:2016年9月5日一、下载mysql1.在浏览器里打开mysql的官网http://www.mysql.com/2.进入页面顶部的”Downloads”3.打开页面底部的“Community(GPL)Downloads”

    2022年5月6日
    132
  • jps详解

        首先jps的目录在java中,如下图所示。jps主要用于查看java进程,在查看hdfs的启动进程时可以代替ps-ef|grephdfs命令。    在讨论jps时,我们可以把用户切换到root用户下,然后jps查看进程,会出现以下问题,如下图所示,显示进程信息不可用(processinformationunavailale)  在企业中,若进程不可用,先用ps-ef…

    2022年4月8日
    299

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号