当前位置: 首页 > news >正文

【工具使用】STM32CubeMX-基础使用篇

一、概述

    无论是新手还是大佬,基于STM32单片机的开发,使用STM32CubeMX都是可以极大提升开发效率的,并且其界面化的开发,也大大降低了新手对STM32单片机的开发门槛。
    本文主要面向初次接触STM32CubeMX的同学,大佬们可以跳过直接看单独的外设篇章。

二、软件说明

    STM32CubeMX是ST官方出的一款针对ST的MCU/MPU跨平台的图形化工具,支持在Linux、MacOS、Window系统下开发,其对接的底层接口是HAL库,另外习惯于寄存器开发的同学们,也可以使用LL库。STM32CubeMX除了集成MCU/MPU的硬件抽象层,另外还集成了像RTOS,文件系统,USB,网络,显示,嵌入式AI等中间件,这样开发者就能够很轻松的完成MCU/MPU的底层驱动的配置,留出更多精力开发上层功能逻辑,能够更进一步提高了嵌入式开发效率。
    演示版本 6.7.0

三、下载链接

官网链接:https://www.st.com/zh/development-tools/stm32cubemx.html
百度网盘链接:https://pan.baidu.com/s/1HsHTmnJPZMZD1reCkMiXew?pwd=eq5j
提取码:eq5j

四、软件使用

安装软件后双击打开软件,界面比较清晰,主要功能都放主界面上了。

New Project:新建工程,可以根据芯片型号、开发板类型、例程建工程。
Manage software installaions:软件包安装,"CHECK FOR UPDATES"是用于更新软件自身,"INSTALL/REMOVE"是用于芯片包的安装和移除(跟Keil一样,需要哪个系列的芯片就安装哪个芯片包)。
About STM32 & External Tools:前者是给ST自己打广告的,后者就是ST的一个工具生态链,一些相关工具可以在里面看到,比如ST的IDE工具——STM32CubeIDE。
在这里插入图片描述
我们先选择根据MCU型号新建一个工程。

-最上方可以切换MCU、开发板或例程。
-左边是一个搜索框,可以根据芯片型号直接搜索,也可以通过芯片资源或芯片信息来找到合适的芯片。
-右下则是具体的芯片型号及一其基本信息,搜索结果也会在这里体现,选中并双击芯片型号即确认并新建工程。
-右上的框是在选中芯片后,会显示芯片的一些具体信息。
在这里插入图片描述

    新建一个工程,因为我手头上只有一块STM32F072RB的开发板,所以这里选这个芯片。
在这里插入图片描述
    新建完工程后,根据选择的芯片型号,主界面会显示对应的芯片及其引脚分布。
在这里插入图片描述
    每个引脚可以单独选择对应的功能,哪些端口能配哪些外设,这里面都可以直观地看出来,不用再去查芯片手册,省了不少时间。配置好一个功能后,引脚颜色会变绿色。如果选完功能后引脚变黄色(比如配置了定时器的某个通道),这说明功能配置不完全,需要到左边的外设窗口进行详细配置。
在这里插入图片描述
左边窗口对芯片外设做了一些分类,点击对应的外设,可以在详细配置的窗口中进行功能配置。

System Core:系统及内核相关的配置,比如系统时钟、GPIO、中断、内部看门狗等。
Analog:模拟量相关的外设,比如ADC、DAC、比较器等。
Timers:定时器相关的外设,比如定时器、RTC等。
Connectivity:通信相关的外设,比如I2C、SPI、UART等。
Multimedia:多媒体相关的外设,比如I2S、HDMI等。
Computing:算法相关的外设,比如硬件CRC等。
Middleware:中间件,比如FreeRTOS、FATFS等。
在这里插入图片描述
    切换时钟配置窗口(Clock Configuration),可以对单片机的时钟树进行直观地配置,这里最方便的就是,修改主频后,工具会自动算出其他所有外设的时钟配置。如果需要对某个外设时钟进行分频处理,可以单独设置。
在这里插入图片描述
    在生成工程代码之前,先进入工程配置界面(Project Manager)对工程进行一些配置,比如设置工程的路径,以及需要生成什么IDE的工程。另外针对于每一个外设,可以自主选择使用LL库或是HAL库。

在这里插入图片描述

    配置完成后,点击"GENERATE CODE"生成工程及代码。在生成的工程里添加自己代码时需要注意一点,生成的代码里有很多"USER CODE BEGIN"和"USER CODE END"的备注,这些其实是提醒你应用代码要写在这个区间内,这样工具在重新生成工程时,可以通过识别这些备注进行选择性覆盖,避免每次改完配置又得重新键入应用代码。

在这里插入图片描述
    查看工程文件.ioc的目录下,多了一个完整的工程,打开工程编译,是可以直接编译通过的。
在这里插入图片描述
    至此,STM32CubeMX这个工具的一些常规使用功能就介绍完了,想了解具体外设的配置,请移步独立的外设篇章。

五、注意事项

1、配置完外设后,无论生成HAL库还是LL库的代码,基本都只是给你初始化好外设,但实际使能或者打开中断,则需要自己来操作。HAL库一般可能只需要调一个启动接口就行(不同外设有不同操作,不可一概而论),LL库则需要操作的寄存器会多一些,可以参考HAL的实现来操作和理解。
2、自动生成的代码也不完全是没问题的,要留点心眼。就比如之前遇到过,F103的芯片,配置ADC用DMA传输时,因为生成的代码ADC和DMA的初始化顺序反了,导致初始化出现异常。
3、添加应用代码时,尽量添加在工程代码里备注着用户代码起始到结束的区间内,这样后面使用CubeMX修改配置重新生成工程时,不会覆盖自己添加的应用代码。

六、相关链接

STM32CubeMX-Uart配置
STM32CubeMX-GPIO配置
STM32CubeMX-外部中断配置
STM32CubeMX-ADC配置
STM32CubeMX-CRC配置
STM32CubeMX-定时器定时配置
STM32CubeMX-定时器输入捕获配置
STM32CubeMX-定时器比较输出配置
STM32CubeMX-I2C配置
STM32CubeMX-SPI配置
STM32CubeMX-NandFlash/FMC总线配置

http://www.lryc.cn/news/36478.html

相关文章:

  • 面试题解-理解cookie、session和token
  • Buuctf [GUET-CTF2019]number_game 题解
  • OsgEarth配置.earth文件支持wms服务
  • 【数据结构】详解空间复杂度
  • 腾讯云GPU游戏服务器/云主机租用配置价格表
  • 配置临时SSL子域名泛化证书
  • 【Linux:环境变量的理解】
  • python数据类型与数据结构
  • 大数据自学学习技巧?
  • Qt音视频开发22-音频播放QAudioOutput
  • JavaEE简单示例——Spring的入门程序
  • 【嵌入式Bluetooth应用开发笔记】第一篇:DBUS概述与蓝牙开发小试牛刀
  • 如何在电脑更换新硬盘后迁移window11系统?2种迁移方法分享!
  • 6、Elasticsearch优化
  • 给力|这是一个专业的开源快速开发框架!
  • CIMCAI smart shipping company product container damage identify
  • ego微商小程序项目-接口测试
  • excel文件已经损坏怎么办
  • Java【数据结构入门OJ题33道】——力扣刷题记录1
  • Spring事务介绍
  • Intellij Idea如何使用VM
  • 基础04-什么时候不能使用箭头函数
  • 算法小抄5-原地哈希
  • java零基础入门(1)
  • java socket实例
  • 计算机中信息的表示和处理 整数和小数的二进制表示
  • Chapter2.2:线性表的顺序表示
  • 老马闲评数字化「4」做数字化会不会被供应商拿捏住
  • robosuite添加无碰撞的模型
  • JS学习笔记day03