STM32CubeMX使用说明

这篇具有很好参考价值的文章主要介绍了STM32CubeMX使用说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 软件安装

1.1 软件&环境下载

1.1.1 STM32CubeMX软件下载

本过程需要进入ST官网下载STM32CubeMX软件安装包,和进入Java官网下载Java运行环境。
ST官网
STM32CubeMX官网下载地址
STM32CubeMX软件ST中文官网下载地址
【 官网下载界面,点击获取软件,跳转到获取步骤。】
STM32CubeMX使用说明
【选择版本,点击获取按钮。】
STM32CubeMX使用说明

1.1.2 Java环境下载

因为 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用, 建议到官网下载最新版本JRE。
必须安装Jave运行环境1.8。

Java环境官方下载地址

1.2 安装

上一节中两个文件下载完成后,即可开始安装。

1.2.1 Java环境安装

1.2.2 STM32CubeMX软件安装

安装步骤见下图,无图过程自行下一步;
STM32CubeMX使用说明
STM32CubeMX使用说明
STM32CubeMX使用说明

2 软件启动与安装库文件

2.1 软件界面

STM32CubeMX使用说明

2.2 修改默认库文件路径

第一次使用cubeMX软件,建议更改库文件路径,不要默认在C盘的用户文件夹中。
依次点击HelpUpdater Setting
STM32CubeMX使用说明
修改Repository Folder下的文件路径。
STM32CubeMX使用说明

2.3 在线安装固件库

  说明:此步骤也非必须当前安装,如果还不知道自己会用什么系列的MCU,可以暂时不安装,等在生成程序工程的时候,软件会自动下载库文件,或者,也可以根据已有库文件在生成工程时候自行导入。

依次点击HelpManage embedded software packages

STM32CubeMX使用说明
在如下图中,选择自己需要的库文件和版本号,点击Install按钮即可在线安装。
STM32CubeMX使用说明

自此,所有安装准备工作完成,即可开始使用。

3 新建第一个工程

3.1 新建工程

进入选择器时会联网更新数据库,可能需要等待一下。
STM32CubeMX使用说明

3.2 选择MCU型号

通过搜索栏搜索自己想添加的MCU 型号,然后在右下方点击对应封装的器件。最后点击开始工程。
STM32CubeMX使用说明

3.3 设置Debug

根据自己下载方式设置对用的debug选项,如果不设置该项,程序只能运行一遍。如果使用串行下载方式(SWDIO,SWCLK)选择Serial Wire。
STM32CubeMX使用说明

3.4 设置时钟

3.4.1 设置时钟源

时钟分类和时钟源选择详见下表

时钟 中文名 频率来源
HSI 高速内部时钟 RC振荡器,频率为8MHz
HSE 高速外部时钟 可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz
LSI 低速内部时钟 低速内部时钟
LSE 低速外部时钟 接频率为32.768kHz的石英晶体.
时钟源 说明
Disable 不使能,使用内部时钟源
BYPASS Clock Source 旁路时钟源1
Crystal/Ceramic Resonator 外部晶体/陶瓷谐振器

设置如下图所示
STM32CubeMX使用说明

3.4.2 设置时钟树

根据上步选择的时钟源,在时钟树上选择对应的时钟通道【② ③步骤】,然后设置时钟源的频率【①】,最后设置需要的时钟频率【④】,此时各种倍频和分频选择器会自动设置为合适的值。
STM32CubeMX使用说明

3.5 MCU功能设置

到当前步骤,可以去设置一些GPIO或一些内部外设的功能,此处不在枚举。

3.6 程序配置

如下图配置,没有注释的可以保持默认。
STM32CubeMX使用说明
STM32CubeMX使用说明
关于上图一些中英文对照表

英文 中文
Copy all used libraries into the project folder 将所有使用的库复制到项目文件夹中
Copy only the necessary library files 只复制必要的库文件
Add necessary library files as reference in the toolchain project configuration file 在工具链项目配置文件中添加必要的库文件作为引用
----------------------------------------------------- -----------------------------------------------------
Generate peripheral initialization as a pair of ‘.c/…h’ files per peripheral 为每个外设生成一对’.c/…h’文件
Backup previously generated files when re-generating 重新生成时备份以前生成的文件
Keep User Code when re-generating 重新生成时保留用户代码
Delete previously generated files when not re-generated 删除以前生成的文件,如果没有重新生成

3.7 生成工程

STM32CubeMX使用说明

3.8 Listing文件设置

建议工程打开以后,把Listing文件路径修改以下,防止工程文件移动位置后,编译失败。

STM32CubeMX使用说明
STM32CubeMX使用说明

4 通用IO配置

4.1 Output 模式

下表为设置内容的解释和说明
STM32CubeMX使用说明

4.1 Input 模式

下表为设置内容的解释和说明
STM32CubeMX使用说明

5 串口通信配置

5.1 参数&界面

参数配置
STM32CubeMX使用说明
中断配置,使能或失能中断,
STM32CubeMX使用说明
为中断分配优先级关于中断优先级的说明可参看本文第六章。
STM32CubeMX使用说明

5.2 串口代码

必须写在主程序前的代码

	//重要!!!***********************************************************
	HAL_UART_Receive_IT(&huart1,UART1_SendBUFF,1);//重新触发串口1中断使能**
	HAL_UART_Receive_IT(&huart2,UART2_SendBUFF,1);//重新触发串口2中断使能**
	//重要!!!***********************************************************
		

回调函数

/**
  * @brief  串口回调函数
  * @retval None
  */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart->Instance==USART1)//判断哪个串口触发的中断
	{	
	}
	else if(huart->Instance==USART2)//判断哪个串口触发的中断
	{
	}
}

6 STM32中断分组和优先级

优先级分组 抢占优先级 响应优先级 描述
NVIC_PriorityGroup_0 0 0~15取值 高4位全部是响应优先级,无抢占优先级
NVIC_PriorityGroup_1 0~1取值 0~7取值 高4位全部是响应优先级,无抢占优先级
NVIC_PriorityGroup_2 0~3取值 0~3取值 抢占优先级为2位,响应优先级为2位
NVIC_PriorityGroup_3 0~7取值 0~1取值 抢占优先级为2位,响应优先级为2位
NVIC_PriorityGroup_4 0~15取值 0 抢占优先级为2位,响应优先级为2位

一些说明 2

  • 抢占优先级不同,会涉及到中断嵌套,抢占优先级高的会优先抢占优先级低的,优先得到执行。(注:优先级数字越小,优先级越高)
  • 抢占优先级相同,不涉及到中断嵌套,响应优先级不同,响应优先级高的先响应。(例如:两个中断同时响应,这里就会先执行响应优先级高的那个中断)(注:优先级数字越小,优先级越高)
  • 抢占优先级和响应优先级都相同,则比较它们的硬件中断编号,中断编号越小,优先级越高。(硬件中断编号从中断向量表当中查看)

本文多方参考各种博客此处不依依列举。关于STM32CubeMX软件的更多详细应用可去官网查看官方文档。参考博客STM32CubeMX中文用户手册下载方法

7 定时器-定时中断

7.1界面解释说明

可按下图进行配置
STM32CubeMX使用说明
打开中断
STM32CubeMX使用说明

7.2 定时器代码

需要在程序中加入的代码片段
定时器中断启动代码

HAL_TIM_Base_Start_IT(&htim2);//启动定时器中断

定时器回调函数

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance==TIM2)
	{		
		LED_All_Toggle;//LED 翻转
	}
}

启动停止函数
这些函数不需要可以不用

HAL_TIM_Base_Stop(&htim2);  // 停止计数
HAL_TIM_Base_Start(&htim2); // 启动定时器
htim2.Instance->CNT = 0;    // 清空中断计数值

7.3 时钟周期计算

关于计算公式,本文不再提供教程,仅提供一个自己做的表格(下载链接在下,不需要积分),用来快速操作设置。【表格如果计算公式输入有误,导致计算结果错误,可评论区指出问题。】
STM32CubeMX使用说明
STM32计算器EXCEL版

7.4 AutoReloadPreload

这个函数对于使用定时中断功能,可以使能也可以不使能,暂时还没有说受影响,要是PWM输出的话,应该是要使能。
使能前,调频过程在ARR的值在当次计数周期内立即生效,这样有可能打断原有的输出比较关系,即ARR和CNT的关系,使得输出比较异常进而导致输出波形异常;AutoReloadPreload使能后,调频过程在ARR的值在下次计数周期才生效,不会打断ARR和CNT预设的输出比较逻辑,引出即使调频不断改变ARR值,互补pwm波形也能正常输出。

7.5 定时器从模式

可参考文章stm32定时器从模式解析

7.6 关于C文件带雪花问题

生成代码以后 ,我们会发现这个time.c文件会带个小雪花的标记。
STM32CubeMX使用说明
可做一下以下操作:

  1. 右击带雪花的文件,选择第一项Options for …
  2. 点击下方Defaults按钮,再点击OK 按钮;
  3. 还原后的效果如下图所示;

STM32CubeMX使用说明

图 7.6.1

STM32CubeMX使用说明

图 7.6.2

STM32CubeMX使用说明

图 7.6.3

8 定时器-PWM模式

8.1 设置界面描述

时钟/模式
STM32CubeMX使用说明
定时器设置
STM32CubeMX使用说明
触发模式选择
STM32CubeMX使用说明
STM32CubeMX使用说明
STM32CubeMX使用说明

STM32CubeMX使用说明

8.2 需要添加代码

通过函数开启通道开始产升PWM信号

  HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);//启动通道1产生PWM信号
  HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);//启动通道2产生PWM信号

8.2 关于占空比

占空比设置函数

sConfigOC.Pulse = 1000;//占空比设置函数

占空比计算
STM32CubeMX使用说明
占空比更改

htim3.Instance->CCR1 = 1500; // 更改通道一PWM高电平周期值

9 ADC

ADC单通道配置
STM32CubeMX使用说明

mode 模式
lndependent mode 独立模式(只开一个ADC,就只有此一个模式,开启多个ADC会有更多选择)

Clock Prescaler 时钟分频

ADC时钟频率,根据手册查看ADC的合适频率,根据APB2时钟频率进行分频,选择合适频率。

Resolution 分辨率
不同分辨率对应不同的转换周期

Data Alignment 对齐模式,默认选择右对齐即可。

Scan Conversion Mode 扫描模式,当只有个ADC时候,不开启或开启都可。当多个ADC通道时,需要开启,判断哪个先转换,那个后转换。

Continuous Conversion Mode 连续转换模式,需要开启。否则采样一次后就不在采样。

Discontinuous Conversion Mode 不连续转换模式,只有不使能选择项, 默认即可。

DMA Continuous Requests DMA连续转换请求,根据使用方式自行选择使能。

End Of Conversion Selection 连续转换结束触发选择。可以选择只有一个通道转换完成触发,也可选择多个通道转换完成触发。

Number Of Conversion 转换通道数量
External Trigger Conversion Source 外部转换触发源,默认选择软件触发Regular Conversion launched by software软件启动的定期转换

External Trigger Conversion Edge外部触发器转换边

Sampling Time 取样时间

ADC_Injected_ConversionMode ADC注入转换模式
Number Of Conversions 注入通道数 默认选择为零

WatchDog 看门狗
Enable Analog WatchDog Mode 启用模拟看门狗模式 ,可以不启用

控制代码

HAL_ADC_Start(&hadc1); //启用ADC并开始常规通道的转换。
HAL_ADC_PollForConversion(&hadc1, 100);//等待ADC转换完成
adc_val = HAL_ADC_GetValue(&hadc1);	//从常规通道的数据寄存器获取转换后ADC的值。

10 DMA

STM32CubeMX使用说明
STM32CubeMX使用说明
STM32CubeMX使用说明


  1. 无需使用外部晶体时所需的芯片内部时钟驱动组件,直接从外界导入时钟信号。犹如芯片内部的驱动组件被旁路了。 ↩︎

  2. 本文为CSDN博主「唯心唯力」的原创文章。原文链接:STM32中断设置以及中断优先级设置 ↩︎文章来源地址https://www.toymoban.com/news/detail-422076.html

到了这里,关于STM32CubeMX使用说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stlink下载调试器使用说明(STM32采用stlink下载程序)

    stlink能干什么?  最基本的功能:下载程序。  一般STM32支持ISP串口下载,也支持stlink、jlink等下载器下载 。 使用stlink、jlink下载要比串口方便很多,在keil里直接点击下载就行了,不需要去选择hex文件,速度上要快很多,主要一点,jlink、stlink能实现硬件仿真调试,程序出问

    2024年02月02日
    浏览(49)
  • 【物联网】stm32标准库开发常用函数的使用和代码说明

    用于控制端口的读写操作。 GPIO_Init:初始化GPIO端口。 GPIO_WritePin、GPIO_ReadPin:写入或读取指定GPIO引脚的状态。 GPIO_SetPin:设置指定GPIO引脚的状态为高电平。 GPIO_ResetPin:将指定GPIO引脚的状态复位为低电平。 用于管理中断相关操作。 NVIC_EnableIRQ:使能指定的中断。 NVIC_Disab

    2024年02月14日
    浏览(38)
  • STM32L0 ADC使用HAL库关于校准问题的说明

    最近是有一个产品用到了ADC,使用的是STM32L051 芯片,使用 STM32CubeMX 生成的代码,本来以为简简单单,但是在调用 HAL ADC校准函数的时候遇到一个问题有点疑问,度娘一下也没有找到解答,还是经过翻阅了一些资料才得到答案,特此来记录一下。 我是矜辰所致,全网同名,尽

    2024年02月02日
    浏览(49)
  • 计算机网络管理-网络管理软件SNMPc软件的下载,安装和使用教程说明

    ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜  ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月10日
    浏览(78)
  • STM32——01-开发软件Keil5及STM32CubeMX的安装

    1.1开发环境的安装  编程语言:C语言 需要安装的软件有两个:Keil5和STM32CubeMX 安装         安装包(不需要太新,以 MDK324 为例,最新的 MDK327 有问题)         安装过程一路下一步即可(建议不要安装在 C 盘)         安装路径一定不要有中文或空格!!(重要

    2024年02月08日
    浏览(46)
  • 【STM32】入门(十):STM32CubeMx下载、安装、使用

    【STM32】STM32单片机总目录 STM32CubeMx依赖 java 环境,需要先下载安装java SE,下载地址: https://www.java.com/zh-CN/download/ STM32CubeMx下载地址:https://www.st.com/zh/development-tools/stm32cubemx.html 下载前,需要输入 邮箱 ,在邮箱里点击下载连接,即可下载 下载的软件: 双击exe,点击安装,等

    2024年01月24日
    浏览(38)
  • STM32 第9讲 STM32CubeMX简介安装和简单使用

    STM32CubeMX是ST开发的一款图形配置工具,可以通过图形化配置自动生成初始化代码。 STM32的标准外设库已经停止维护了。 安装STM32CubeMX之前必须安装JAVA环境,这两个顺序不能调换。 官网下载地址link 下载完成后,点击安装包,直接安装即可。 接下来检测是否安装成功。 Win +

    2024年02月16日
    浏览(37)
  • STM32学习·HAL库·STM32CubeMX系列学习(安装和使用)

    目录 ​编辑 1.  STM32CubeMX简介 2.  STM32CubeMX安装 2.1  STM32CubeMX软件获取 2.1.1  获取Java软件 2.1.2  STM32CubeMX软件获取 2.2  搭建Java运行环境 2.3  安装STM32CubeMX软件 2.4  下载和关联STM32cube固件包         STM32CubeMX 是 ST 微电子公司推出的一款图形化配置工具,用于快速启动

    2024年02月19日
    浏览(50)
  • HAL库&STM32cubeMX工程软件模拟IIC,改改引脚即可直接使用

    c文件如下 h文件如下

    2024年02月14日
    浏览(53)
  • STM32开发(2)----CubeMX的安装和使用

    本章对STM32CubeMX的安装和使用做简单介绍 STM32CubeMX是一种图形化工具,它允许非常简单地配置STM32微控制器和微处理器,并通过逐步过程为Arm®Cortex®-M内核生成相应的初始化C代码,或为Arm™Cortex®-a内核生成部分Linux®设备树。 STM32CubeMX 具有如下特性: ① 直观的选择 MCU 型号,

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包