STM32CubeMX教程之简介及基本使用

2023-05-16

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


图1 TrueStudio中的STM32CubeMX

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

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

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


图2  芯片或者开发板选择

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


图3 开发板或者芯片选择

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



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

图5  ADC1警告

图6 ADC1具体冲突的地方

同样的,我们将鼠标光标放在上,可以看到,图7所示提示。告诉我们I2C2不可用,因为PB3脚已经映射为SYS_JTDO-SWO。


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

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

二、项目设置

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


图8 Project Settings

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





图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 */之间等。


图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所示。


图11 仿真工具配置

一切OK,编译,下载,便可验收成果了,祝君顺利!欢迎交流:


本例示例代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32CubeMX教程之简介及基本使用 的相关文章

随机推荐

  • PX4 GAZEBO无人机添加相机并进行图像识别

    PX4 GAZEBO无人机添加摄像头并进行图像识别 在之前完成了ROS的安装和PX4的安装 xff0c 并可以通过roslaunch启动软件仿真 接下来为无人及添加相机 xff0c 并将图像用python函数读取 xff0c 用于后续操作
  • XTDrone 视觉SLAM环境配置

    基于XTDrone的视觉SLAM章节 xff0c 进行环境配置 中途遇到了一些问题 xff0c 一一解决后成功完成了 xff0c 记录该流程 一 遇到的问题与参考链接 XTDrone相关参考连接 xff1a 链接依赖安装教程 xff1a O
  • XTDrone 视觉惯性里程计(VIO)配置

    XTDrone 视觉惯性里程计 xff08 VIO xff09 配置 参考XTDron进行配置 xff0c 对于依赖的配置写成文档 xff0c 参考主要为 xff1a XTDrone Ceres Solver 2 0 0 1 下载2 0 0
  • ros realsense D435i摄像头配置

    ros realsense D435i摄像头配置 之前在ubunut18中配置了ROS环境 xff0c 现在需要在此基础上 xff0c 配置D435i相机的SDK和ROS包 一 参考 https github com IntelRealSe
  • 树莓派4B(ubuntu mate系统)使用d435i运行vins

    树莓派4B xff08 ubuntu mate系统 xff09 使用d435i运行vins 提示本文为随手笔记 xff0c 并不严谨 xff0c 可参考 xff1a 博客和博客进行配置 树莓派 ubuntu mate 20系统安装ros的步
  • 树莓派3B+增加虚拟内存

    普通ubuntu系统增加虚拟内存参考 xff1a https blog csdn net weixin 42405819 article details 117886557 编译opencv时 xff0c 卡在了91 不动 xff0c 按照
  • ROS主机从机设置

    ROS主机从机设置 在ROS基础上 xff0c 配置主机和从机 xff0c 实现主机和从机的话题联通 配置hosts 在主机和从机的 etc hosts文件中 xff0c 配置如下内容 xff08 也许主机只需要写入 master xff1
  • VINS、MAVROS等的坐标系统一(草稿,未得出明确结果)

    由于不同算法之间的坐标系不同 xff0c 导致计算的结果混乱 xff0c 该博客的目的是记录和统一不同算法之间的坐标系 xff0c 保证坐标系的统一 一 VINS算法 vins算法 xff0c 使用D435I相机 该坐标方向为 xff1a
  • ROS学习笔记9-创建ros消息和服务

    该节内容主要来自于官方文档的两个小节 xff1a 1 使用rosed来编辑 2 创建ros消息的服务 先来看rosed xff1a rosed rosed命令是rosbash的一部分 xff0c 使用rosed可以直接编辑包中的一个文件 x
  • CUAV RTK初步使用体验和感受

    记录使用RTK进行无人机定位并操作的使用体验 一 RTK定位设置 使用的是CUAV制作发售的RTK xff0c 型号为C9P xff0c 目前该产品已经下架 xff0c 上新了C9PS 并不需要太多的设置 xff0c 在飞控接入RTK后 x
  • 记录一次WIN11开机在登录页面循环的问题

    记录一次由于未进行win密码设置 xff0c 导致开机后卡在登录界面无法登录进去的问题 最后完美解决了 1 背景 开机后 xff0c 显示用户登录界面 xff0c 但是和以往不同 xff0c 没有了密码输入框 xff0c 只有一个 登录 按
  • Ubuntu中增加串口的缓冲区

    增加串口缓冲区 xff0c 用于尝试解决px4 ros中显示TX溢出的问题 以下大部分代码和内容均有CHATGPT生成 xff0c 代码已经通过验证 一 通信溢出问题 PX4和ROS的通信溢出可能是由于几个原因造成的 以下是一些建议 xff
  • GRBL代码使用与修改

    下载官方grbl代码 xff0c 并进行修改使其正确 1 问题 xff1a 购买了328p单片机 xff0c 购买了grbl的底板 xff0c 但是烧录之后无法正常使用 问题发现 xff1a 引脚错误了 xff0c 官方代码中的引脚需要修改
  • ubuntu使用rc.local开机自启USB设备读写权限

    无人机飞控为ACM0 xff0c 串口USB为USB0 xff0c 使用rc为其开机自启给与权限 大部分由chagpt生成 xff0c 已验证 首先 xff0c 创建一个新的 etc rc local 文件 xff08 如果尚不存在 xff
  • Friendlycore增加inodes数量

    背景 xff1a 为Nanopim1安装了core系统 xff0c tf卡大小64G xff0c 安装后正常扩展到了整个tf卡 xff0c 但是在安装hass的docker显示磁盘空间不够 xff0c 最终发现是inode被用完了 其ino
  • UORB

    转载地址 xff1a http blog arm so armteg pixhawk 183 0503 html Pixhawk 飞控 系统是基于ARM的四轴以上飞行器的飞行控制器 xff0c 它的前身是PX4 IMU xff0c Pixh
  • rCS启动脚本分析

    转载地址 xff1a http wellmakers com p 61 401 还有一篇很重要的文章 xff0c 讲述了整个系统的大致启动过程 xff1a http blog chinaunix net uid 29786319 id 43
  • PID通俗解释

    转载地址 xff1a http blog gkong com liaochangchu 117560 ashx PID是比例 积分 微分的简称 xff0c PID控制的难点不是编程 xff0c 而是控制器的参数整定 参数整定的关键是正确地理
  • Kali Linux中安装Xfce的步骤2-1

    Kali Linux默认安装的是桌面环境是Gnome xff0c 可以通过以下方法在Kali Linux中安装Xfce xff0c 从而修改其桌面环境 1 Xfce介绍 Xfce是XForms Common Enviroment的简写 其可
  • STM32CubeMX教程之简介及基本使用

    STM32CubeMX是意法半导体推出的图形化配置工具 xff0c 通过傻瓜化的操作便能实现相关配置 xff0c 最终能够生成C语言代码 xff0c 支持多种工具链 xff0c 比如MDK IAR For ARM TrueStudio等 尤