0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F4_TIM输出PWM波形 (可调频率、占空比)

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-24 11:26 次阅读

Ⅰ、概述

上一篇文章关于STM32基本的计数原理明白之后,该文章是在其基础上进行拓展,讲述关于STM32比较输出的功能,以输出PWM波形为实例来讲述。

提供实例工程中比较实用的函数:只需要调用该函数,参数为频率和占空比

void TIM2_CH2_PWM(uint32_tFreq, uint16_tDutycycle);

先看一下实例中1KHz、20%占空比波形图 TIM2_CH2_PWM(1000, 20);


关于本文的更多详情请往下看。

Ⅱ、实例工程下载

笔者针对于初学者提供的例程都是去掉了许多不必要的功能,精简了官方的代码,对初学者一看就明白,以简单明了的工程供大家学习。

笔者提供的实例工程都是在板子上经过多次测试并没有问题才上传至360云盘,欢迎下载测试、参照学习。

提供下载的软件工程是STM32F417的,但F4其他型号也适用(适用F4其他型号:关注微信,回复“修改型号”)。

STM32F4_TIM输出PWM波形(可调频率、占空比)实例:

https://yunpan.cn/cBYTWTgSmhbfe 访问密码 0025

STM32F4资料

https://yunpan.cn/cR2pxqF5x2d9c 访问密码 53e7

Ⅲ、原理描述


上一篇文章讲述的就是上图中“计数”红色部分,也就是开始到结束的时间,该文章是讲述在这个计数的中间加一个值(比较值),当计数到这个比较值的时候就对输出的引脚进行反向,直到计满(一个周期)。循环下去。

通用TIM框图:


上面两图截取“STM32F4x5、x7参考手册”建议下载手册参看。

我上面说的“比较值”就是TIM框图中比较部分的“Capture/Comparex register”比较寄存器,这个值就会决定输出引脚的电平。

Ⅳ、源代码分析

笔者以F4标准外设库(同时也建议初学者使用官方的标准外设库)为建立的工程,主要以库的方式来讲述。

1.RCC时钟


该函数位于bsp.c文件下面;

重点注意:

A.外设RCC时钟的配置要在其外设初始化的前面;

B.匹配对应时钟。

比如:RCC_APB2外设不要配置在RCC_APB1时钟里面

【如:RCC_APB1PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);这样能编译通过,但这是错误的代码】

2.TIM比较输出配置


该函数位于timer.c文件下面;

TIM2时基单元配置是上一篇文章相关的内容,是及时的配置,在该文中也就是对一个周期的配置。

TIM2通道2:PWM1模式配置是对占空比的配置。

tim2_period =TIM2_COUNTER_CLOCK/Freq - 1;

tim2_pulse = (tim2_period + 1)*Dutycycle / 100;

函数开始是对周期和占空比的一个换算公式,也比较简单。

决定输出频率和占空比主要由这三个参数(TIM2_PRESCALER_VALUE、tim2_period、tim2_pulse)决定的。

以今天工程输出1KHz,20%来举例说明:

TIM2_PRESCALER_VALUE = 168M/2 / 42M - 1 = 1 (也就是2分频)

tim2_period = 42000 - 1

tim2_pulse = 8400

频率1KHz = 42M/ 4200

占空比20% = 8400/42000

Ⅴ、说明

关于笔者提供的软件工程实例,可关注微信,在会话框回复“关于工程”,有关于工程结构描述、型号修改等讲述。

以上总结仅供参考,若有不对之处,敬请谅解。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5181

    浏览量

    213798
  • RCC
    RCC
    +关注

    关注

    0

    文章

    93

    浏览量

    26932
  • STM32F4
    +关注

    关注

    3

    文章

    194

    浏览量

    28046
收藏 人收藏

    评论

    相关推荐

    PWM波形的特性与优化

    脉冲的平均值,进而控制负载的平均功率。 2. 占空比 占空比(Duty Cycle)是PWM波形中一个周期内高电平时间与整个周期时间的比值。占空比
    的头像 发表于 11-29 09:13 395次阅读

    PWM调频的区别 基于PWM的电源管理方案

    的基本原理是通过调节脉冲信号的占空比(即高电平时间占总时间的比例)来控制输出电压或电流的大小。它利用一系列宽度不同的脉冲信号来模拟所需的电压或电流波形调频则是通过改变信号的
    的头像 发表于 11-28 16:42 335次阅读

    使用STM32CubeMX输出PWM,并制作呼吸灯效果

    概述 本篇文章主要介绍如何使用STM32CubeMX输出PWM,并制作呼吸灯效果。 硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板: 选择芯片型号
    发表于 09-04 10:38

    STM32F030K6 4PWM只有1路正常,其它3路没PWM波形为什么?

    TIM16->CR1|=0x01; //使能定时器16 } PCLK=HCLK=48MHZ. 查了很久,上面4PWM设置内容几乎一样的,为何只有1路能功作,而其他3路则一直是低电平,没
    发表于 05-17 06:40

    STM32F103ZE IO口外部中断计算PWM波形占空比频率遇到的疑问求解

    大家好! 最近开始接触STM32F103ZE开发板,计划利用IO口外部中断的方法计算PWM波形占空比频率。出现了一些问题,还请大神们指
    发表于 05-10 06:41

    如何获得STM32F103VET6 PWM频率

    各位大神前辈们:我最近一个项目,使用的是STM32F103VET6,需要驱动至少10伺服电机,现在其他功能占用了几个TIM现在使用TIM1和TIM4
    发表于 04-30 08:07

    STM32F407 PWM输出时一次中断未执行完下一次中断就进入,导致PWM波形输出紊乱怎么解决?

    [td]我在做毕设,使用的是STM32F407PWM输出功能,已有内含117个元素的数组前4个元素分别为1,2,1,3,后113个元素为0和1。 预期效果:根据117个数组元素,生成频率
    发表于 04-18 07:45

    f446rct6在使用dma控制pwm占空比时,pwm波形异常的原因?

    需要更新数据时,启动一次dma传输 现象:pwm波的频率占空比没有问题,但是在启动dma传输的第一个或第二个波形,经常会 出现一个三角形的奇怪
    发表于 04-09 07:45

    STM32F429的TIM4定时器输出四路PWM,为什么第四路PB9一直输出低电平?

    芯片型号:STM32F429ZGT6 用TIM4输出4PWM,用的是PB6PB7PB8PB9程序是一样的配置,前三路都有
    发表于 04-03 07:43

    STM32F407 TIM1 PWM输出占空比不稳定的原因?

    使用HAL库,设置频率12.5MHZ,占空比50%。实际输出,大多数为50%,少数为75%左右。库函数编写是会有一个TIM_CtrlPWMOutputs()函数,使能BDTR寄存器MO
    发表于 03-27 07:39

    STM32f4定时器TIM1输出PWM占空比快速变化时,串口2接收的数据频繁出错是为什么?

    STM32f4定时器TIM1输出PWM占空比快速变化时,导致串口2接收的数据频繁出错是为什么?
    发表于 03-15 06:27

    STM32U575 pwm和DMA输出波形少一段怎么处理?

    _PulseFinishedCallback(TIM_HandleTypeDef *htim){HAL_TIM_PWM_Stop_DMA( htim4,TIM_CHANNEL_1);}
    发表于 03-13 06:10

    利用TIMER测量信号周期及占空比的精度

    有人使用STM32G4系列的通用型TIMER基于捕获功能对外来信号进行周期及占空比的测量。他用TIM3产生频率占空比
    的头像 发表于 02-25 10:11 1387次阅读
    利用TIMER测量信号周期及<b class='flag-5'>占空比</b>的精度

    pwm频率占空比的计算公式

    PWM(脉宽调制)是一种常用的控制技术,在电子系统中广泛应用。PWM频率占空比是其重要参数之一,对于设计和优化PWM控制系统非常重要。本
    的头像 发表于 12-28 11:40 2w次阅读

    怎么实现dsp芯片输出占空比固定的pwm波形

    实现DSP芯片输出占空比固定的PWM波形需要以下步骤:定义占空比、设置计时器、计算周期和持续时间、更新
    的头像 发表于 12-26 17:28 2684次阅读