STM32CubeMx普通PWM基本使用方法

发布者:心满意足最新更新时间:2024-09-26 来源: elecfans关键字:STM32CubeMx  使用方法 手机看文章 扫描二维码
随时随地手机看文章

本文实例说明:


这里是使用 TIM3_CH2输出 一个频率为50kHz; 占空比为50% 的PWM信号。


1先配置STM32CubeMX 参数,如图:

图片

重点说明:


PWM 频率 = APB1 Timer clocks (MHz) / [(Prescaler+1) * (Counter Period+1)]


APB1 Timer clocks (MHz) :64MHz


Counter Period : 20


Prescaler :设置为64-1 那么此时PWM时钟设置为:


f = 64000000 / 64 /20 = 50KHz

Pulse :设置为10 ,也就是占比为:10/20 = 50%


Fast Mode:如果频率太高可以使能快速模式。可以大大提高PWM反应时间;同时将IO口输出速度调高。


2代码分析:


static void MX_TIM3_Init(void)

{



  /* USER CODE BEGIN TIM3_Init 0 */



  /* USER CODE END TIM3_Init 0 */



  TIM_MasterConfigTypeDef sMasterConfig = {0};

  TIM_OC_InitTypeDef sConfigOC = {0};



  /* USER CODE BEGIN TIM3_Init 1 */



  /* USER CODE END TIM3_Init 1 */

  htim3.Instance = TIM3;

  htim3.Init.Prescaler = 64-1;

  htim3.Init.CounterMode = TIM_COUNTERMODE_UP;

  htim3.Init.Period = 20-1;

  htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

  htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;

  if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)

  {

    Error_Handler();

  }

  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;

  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;

  if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)

  {

    Error_Handler();

  }

  sConfigOC.OCMode = TIM_OCMODE_PWM1;

  sConfigOC.Pulse = 10;

  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;

  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;

  if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)

  {

    Error_Handler();

  }

  /* USER CODE BEGIN TIM3_Init 2 */

  HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); //启动PWM输出函数

  __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, 10);//这个函数可以设置占空比

  /* USER CODE END TIM3_Init 2 */

  HAL_TIM_MspPostInit(&htim3);



}


3实验现象:

图片


关键字:STM32CubeMx  使用方法 引用地址:STM32CubeMx普通PWM基本使用方法

上一篇:基于STM32的Keil和偏移地址程序存储
下一篇:STM32单片机如何处理QT上位机串口中发过来的数据?

推荐阅读最新更新时间:2026-03-20 12:16

浅谈STM32CubeMX使用方法及功能介绍
Ⅰ、写在前面 学习本文之前可以查看我前面的文章: STM32CubeMX介绍、下载与安装 主要讲述STM32CubeMX菜单及相关功能,简单讲述一下新建工程,后面结合实际例子讲述新建工程配置的具体细节。 关于本文的更多详情请往下看。 Ⅱ、STM32CubeMX主界面描述 打开安装好的STM32CubeMX,看到其主界面如下: 主要看到 信息 有: 1.菜单栏:打开软件只有4个主菜单,在新建工程后有5个菜单; 2.快捷按钮栏:这些按钮在菜单栏里面都能找到; 3.新建工程:我们打开软件,新建工程就是点击该按钮; 4.导入工程:如果之前有建好的工程,可以点击该处导入工程; 5.帮助:帮助功能都应该知道,可点击菜单help或按F1
[单片机]
浅谈<font color='red'>STM32CubeMX</font><font color='red'>使用方法</font>及功能介绍
STM32CubeMx定时器编码器模式基本使用方法
前言: 增量式编码器在实际应用中还是很常见。 stm32的定时器带的也有编码器模式。 所用的编码器是有ABZ三相,其中ab相是用来计数,z相输出零点信号。 AB相根据旋转的方向不同,输出的波形如下图所示: 第一步:具体配置如下图: 重点说明: 一、如果编码模式设置为 Encoder Mode TI1 and TI2 则会默认检测AB相的上升沿与下降沿; 每一个上升沿和下降沿都触发计数,所以每转一格计数器就会+4;那么上图计数周期设置为400; 也就是编码器转100格,计数器就会置零,重新开始计数! 二、关于Polarity参数:这个参数的意思是在检测到上升沿的时候就触发encoder捕获AB相的值,而并不是这里设置的是上
[单片机]
<font color='red'>STM32CubeMx</font>定时器编码器模式基本<font color='red'>使用方法</font>
STM32CubeMx外部中断基本使用方法
第一步:现在 STM32 CubeMx 中配置所需要IO口外部中断模式: 单击对应IO口左键-- GPIO_EX TI 第二步:配置中断触发模式 GPIO-- GPIO_mode GPIO-- GPIO 上拉/下拉 这里以外部中断模式/下降边缘触发 检测 ,默认上拉( Pull-up) 为例 第三部:配置中断优先级: NVIC(嵌套向量中断控制器) -- EXTI line interrupts 根据自身需要配置中断优先级 到这里STM32CubeMx 就配置完成了,之下来分析STM32CubeMx 生成的源码 先看一下GPIO的初始化函数; static void MX_GPIO_Init(void) {
[单片机]
<font color='red'>STM32CubeMx</font>外部中断基本<font color='red'>使用方法</font>
STM32CubeMX操作
1.更改库安装路径 2.下载库 这里下载F1
[单片机]
<font color='red'>STM32CubeMX</font>操作
STM32cubeMX安装(2021)
STM32CubeMX 简介 STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。 STM32新手直接学习HAL库,因为STM32的新产品系列已经不支持标准库了,新出的STM32F7,H7,系列不再支持固件库,只能使用HAL库,此外STM32的图形化配置工具STM32CubeMX只支持HAL和LL库,所以没有必要在去学习标准库了。 参考转载:https://blog.csdn.net/as480133937/article/details/98885316 STM32
[单片机]
STM32CubeMX学习笔记(3)——EXTI(外部中断)接口使用
一、新建工程 1. 打开 STM32CubeMX 软件,点击“新建工程” 2. 选择 MCU 和封装 3. 配置时钟 RCC 设置,选择 HSE(外部高速时钟) 为 Crystal/Ceramic Resonator(晶振/陶瓷谐振器) 选择 Clock Configuration,配置系统时钟 SYSCLK 为 72MHz 修改 HCLK 的值为 72 后,输入回车,软件会自动修改所有配置 4. 配置调试模式 非常重要的一步,否则会造成第一次烧录程序后续无法识别调试器 SYS 设置,选择 Debug 为 Serial Wire 二、EXTI外部中断 2.1 参数配置 在 System Core
[单片机]
STM32CubeMX学习笔记(8)——ADC接口使用
一、ADC简介 ADC(Analog-to-Digital Converter),即模拟-数字转换器,可以将连续变化的模拟信号转换为离散的数字信号,进而使用数字电路进行处理,称之为数字信号处理。 STM32f103 系列有 3 个 ADC,精度为 12 位,每个 ADC 最多有 16 个外部通道。其中 ADC1 和 ADC2 都有 16 个外部通道,ADC3 根据 CPU 引脚的不同通道数也不同,一般都有 8 个外部通道。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。ADC 的输入时钟不得超过1
[单片机]
STM32CubeMX学习笔记(12)——WWDG窗口看门狗使用
一、WWDG简介 看门狗其实就是一个定时器,从功能上说它可以让微控制器在程序发生意外(程序进入死循环或跑飞)的时候,能重新回复到系统刚上电状态,以保障系统出问题的时候可以重启一次。说的复杂一点,看门狗就是能让程序出问题是能重新启动系统。 STM32 有两个看门狗,一个是独立看门狗,一个是窗口看门狗。我们知道独立看门狗的工作原理就是一个递减计数器不断的往下递减计数,当减到 0 之前如果没有喂狗的话,产生复位。窗口看门狗跟独立看门狗一样,也是一个递减计数器不断的往下递减计数,当减到一个固定值 0X40 时还不喂狗的话,产生复位,这个值叫窗口的下限,是固定的值,不能改变。这个是跟独立看门狗类似的地方,不同的地方是窗口看门狗的计数器的值
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved