STM32CubeIDE下配置STM32F103输出带死区的互补PWM波

发布者:genius5最新更新时间:2024-07-25 来源: elecfans关键字:STM32CubeIDE  STM32F103  互补PWM波 手机看文章 扫描二维码
随时随地手机看文章

STM32F103的TIM1和TIM8是高级定时器,可以产生嵌入死区时间的互补PWM波,使用STM32CubeIDE完成相关配置,可以直接生成代码,输出带死区的PWM波。


根据项目需要,单片机需输出频率为36kHz,占空比50%,死区时间500ns的互补PWM波,下面使用STM32CubeIDE完成相关配置。


1、选择时钟源,这里选择外部石英晶体作为HSE时钟源

图片

2、配置系统时钟为72MHz,高级定时器TIM1和TIM8时钟由APB2提供,这里APB2等于系统时钟72MHz

图片

3、这里使用TIM1来产生互补PWM波,TIM1复用功能如下表所示:

图片

我们使用单片机的PA7和PA8引脚作为PWM互补输出的两个通道,在STM32CubeIDE里将此两引脚选择为TIM1_CH1N和TIM1_CH1

图片

4、点左边的Timers,选择Tim1,TIM1 Mode and Configuration下的Mode选项下主要完成以下配置:

**Clock Source **选择 Internal Clock,使用内部时钟源;

Channel1 选择 PWM Generation CH1 CH1N,PWM产生CH1和CH1N,对应上面选择的引脚PA8和PA7。

图片

5、Configuration选项下主要完成以下配置:

Counter Settings下的配置:

Prescaler 设置为1,预分频器设置为2-1;

Counter Mode选择Up,计数模式为向上计数;

Counter Period设置为1000-1,设置计数周期;

auto-reload preload 选择Enable,开启自动重装载。

以上几项配置主要是设置PWM频率,计数器从0开始计数,计数到(1000-1),再从0重新开始计数,预分频器设置为1,则计数器使用的时钟频率为72MHz/2 = 36MHz,计数周期为1000×1/36MHz,频率为36MHz/1000 = 36kHz。

Break And Dead Time Management下的配置:

Dead Time 设置为36,配置死区时间,死区时间36×1/72MHz = 500ns。

PWM Generation Channel 1 and 1N下的配置:

Mode 选择 PWM Mode 1,选择PWM产生模式;

Pulse 设置为500,设置占空比,对应上面的Counter Period,此时占空比为Pulse/(Counter Period+1) = 500/1000 = 50%。

其他的选项保持默认值即可。

图片

6、完成以上配置后即可生成代码,打开生成的代码,在main.c的TIM1初始化函数MX_TIM1_Init(void)中添加两行代码,将PWM开启。

图片

7、编译,下载到开发板上,用示波器可以看到输出的带死区的互补PWM波形

图片

图片


关键字:STM32CubeIDE  STM32F103  互补PWM波 引用地址:STM32CubeIDE下配置STM32F103输出带死区的互补PWM波

上一篇:stm32中断怎么处理的
下一篇:STM32 MCU通过STM32CubeMx配置NVIC怎么没有中断子优先级选项

推荐阅读最新更新时间:2026-03-25 11:21

STM32F103输出多路死区互补PWM
阅读数:39 TIM1,TIM8可以产生死区互补PWM波,学习后发现stm32的定时器功能确实很强大,小总结一下方便以后使用的时候做参考。Stm32定时器一共分为三种:tim1和tim8是高级定时器,6和7是基本定时器,2—5是通用定时器。从名字就可以看得出来主要功能上的差异。今天我主要是用定时器做pwm输出,所以总结也主要是针对pwm方面的。 先大致说下通用和高级定时器的区别。通用的可以输出四路pwm信号互不影响。高级定时器可以输出三对互补pwm信号外加ch4通道,也就是一共七路。 所以这样算下来stm32一共可以生成4*5+7*2=30路pwm信号。接下来还有功能上的区别:通用定时器的pwm信号比较简单,就是普通的调节
[单片机]
STM32学习笔记(4) 高级定时器-两路互补PWM输出死区和刹车控制)
1.实验目的 使用高级定时器,输出两路互补的PWM输出,需要有带死区和不带死区两种情况 2.实验效果 图1:不带死区的两路互补的PWM输出 图2 :带死区的两路互补的PWM输出 3.理论部分 3.1时钟源 内部时钟(基本定时器,通用定时器时钟源来自PCLK1,但高级定时器的时钟源来自PCLK2(72M)) 实践中几乎无需使用:外部时钟模式1、外部时钟模式2 3.2时基单元 组成: 16bit预分频PSC 16bit计数器CNT 8bit重复计数器RCR(高级定时器独有) 16bit自动重装载寄存器ARR 3.3输入捕获 作用:对输入信号的上升沿/下降沿/双边沿进行捕获,测量输入信号的脉宽,和
[单片机]
STM32学习笔记(4) 高级定时器-两路<font color='red'>互补</font>的<font color='red'>PWM</font><font color='red'>输出</font>(<font color='red'>带</font><font color='red'>死区</font>和刹车控制)
STM32F4高级定时器产生六路互补PWM
一、使用高级定时器TIM8; 二、使用引脚:CH1-PC6, CH1N-PA5, CH2-PC7, CH2N-PB0,CH3-PC8,CH3N-PB1; 三、使用的寄存器:TIMx_CCMRx:选择PWM模式 TIMx_ARR:PWM的周期 TIMx_CCRx:PWM占空比 四、结构体:GPIO_InitTypeDef :GPIO口复用 GPIO_Init(); TIM_TimeBaseInitTypeDef :基本定时结构 TIM_TimeBaseInit();
[单片机]
STM32 stm32cubeide 定时器
一.STM32定时器概述 定时器是单片机中一个最基本的外设,可以提供定时计数,PWM,输入捕获和输出比较等多种应用。在STM32系列单片机中,最多有18个定时器,这些定时器根据功能的多少可以分为基本定时器,通用定时器和高级定时器。它们具有独立的硬件资源,对于一个确定型号的单片机可以有1~19个定时器。 下面一个表格记录了不同系列的单片机拥有的定时器的数量: 图1.1 定时器总览 不同类型的定时器有自己独特的特性,灵活多样的定时器配置可以在最低的成本下满足各种开发需求。 图1.2 不同定时器的特性 二.时钟源 STM32单片机中不同的外设挂载的总线不同,通常其基本的时钟频率也会有差别,下面表格是F4系列单片机
[单片机]
STM32集成开发工具 | STM32CubeIDE介绍、下载、安装和使用教程
介绍 官网地址: https://www.stmicroelectronics.com.cn/en/development-tools/stm32cubeide.html STM32CubeIDE是一个多功能的集成开发工具,集成了TrueSTUDIO和STM32CubeMX,它是STM32Cube软件生态系统的一部分。 STM32CubeIDE是一个先进的C/C++开发平台,具有STM32微控制器的IP配置,代码生成,代码编译和调试功能。它基于Eclipse/ CDT框架和用于开发的GCC工具链,以及用于调试的GDB。它允许集成数百个现有插件,完成EclipseIDE的功能。主要特点: 1.集成STM32CubeMX: S
[单片机]
STM32CubeIDE使用入门的几个常见问题
ST公司为广大STM32用户提供了免费的集成开发工具STM32CubeIDE有一段时间了。常言道,万事开头难。这里就其入门使用的几个常见问题分享交流下。 1、STM32CubeIDE该免费工具哪里可以下载? 可以前往www.st.com搜索下载。它基于Eclipse/CDT框架和GCC工具链,支持ECLIPSE插件和GDB调试器。它有支持多个平台的版本,比方LINUX/macOS/WINDOWS等。 2、安装STM32cubeIde有时总不成功怎么办? 最常见的问题就是路径上有中文字符。另外,如果不是首次安装STM32CUBEIDE的话,记得将之前版本的东西卸载干净。 3、它支持与图形化配置工具stm32CubeMx的协调
[单片机]
<font color='red'>STM32CubeIDE</font>使用入门的几个常见问题
关于STM32CubeIDE环境下的变量显示及监测
ST公司为广大STM32用户推出了免费的编译调试开发环境STM32CubeIDE,越来越多的人都在关注和使用它。在基于STM32CubeIDE的开发过程中,有个比较常见的问题就是如何在调试过程中对变量进行查看。这里简单地演示下实现过程。 我在工程里定义了两个全局变量,分别是下图中两个变量。【注:文中图片手机模式下可以点击放大查看】 代码编译完成后,开始进行调试。我们可以打开Debug 视窗中的expression视窗来查看程序运行后的变量值。 使用expression视窗查看变量结果的话,当程序在运行时是不能查看动态结果的,这时数据可能保持不动甚至提示出错,像下图所示,这时不用理它。 当你暂停或停止运行时就会显示最
[单片机]
关于<font color='red'>STM32CubeIDE</font>环境下的变量显示及监测
分享一下STM32CubeIDE的SWV功能
很多工具都自带有 SWV (Serial Wire Viewer)的功能,之前给大家分享的《打印输出教程》就描述了在Keil、IAR、ST-LINK Utility、STM32CubeProg、J-Link等工具下实现“SWV”的功能。 今天再给大家分享一下STM32CubeIDE的SWV功能。 第一步:在Pinout & Configuration选项中打开SWO的功能,此步骤是必须的。 STM32CubeIDE中使能SWO功能 第二步:重定位printf的接口函数。 这里有个简单的方法,直接在syscalls.c文件中,改写_write()函数的内容,代码如下所示。再在此文件中包含ITM_SendChar 实现的头文件
[单片机]
分享一下<font color='red'>STM32CubeIDE</font>的SWV功能
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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