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
    +关注

    关注

    116

    文章

    5847

    浏览量

    223830
  • RCC
    RCC
    +关注

    关注

    0

    文章

    95

    浏览量

    28303
  • STM32F4
    +关注

    关注

    3

    文章

    204

    浏览量

    29830
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【RA-Eco-RA6M4开发板评测】PWM输出

    通道详情 PWM 输出就是对外输出脉宽(即占空比可调的方波信号, 信号频率由周期设定寄存器 G
    发表于 11-09 21:30

    103rc rt-studio TIM4 CH2输出PWM不正常怎么解决?

    : RT-Thread Studio 输出PWM详细教程 配置TIM4的CH2、CH4均无法正常输出pw
    发表于 09-16 08:20

    RTthread 4.1 stm32h7系列不支持pwm要怎么处理?

    (SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) if (htim->Instance == TIM9 || htim-&
    发表于 09-10 07:34

    请问怎么用HRTIM输出可变占空比PWM?

    现在可以输出单路PWM,但可变占空比PWM不知道怎么配置。请大佬帮助!
    发表于 07-25 08:16

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料
    发表于 06-06 17:06 9次下载

    【RA-Eco-RA4M2开发板评测】RA-Eco-RA4M2 PWM输出

    ))。GPT 的计数器支持递增计数,递减计数和递增/递减计数。详细的通道名称如下表所示。 Figure ‑ GPT各个通道详情 PWM 输出就是对外输出脉宽(即占空比
    发表于 04-28 22:57

    求助大佬我使用STM32F030F4P6 的PA3引脚输出PWM波形

    查看数据手册复用是AF0,TIM15_CH2(2),但是发现没有办法输出PWM波形实现呼吸灯效果 实际尝试PA3引脚让LED灯亮灭闪烁是可以实现的,但是却没有办法
    发表于 03-20 23:13

    STM32F103 TIM1_CH3N输出PWM波形为什么会多出一个边沿?

    红色为TIM1_CH3N,绿色为TIM1_CH3,为什么TIM1_CH3N输出PWM波形会多
    发表于 03-13 06:58

    stm32同一个定时器不同的通道,可以不同时的输出pwm波形吗?

    请问,stm32的同一个定时器,不同的通道,可以不同时的输出pwm波形吗?比如tim1的ch1输出
    发表于 03-07 08:20

    如何使用TIM2的更新事件触发TIM1的PWM DMA?

    目前在学习无刷电机,现在在跑开环控制,想问问是否能实现这样的一个功能,TIM1用于3项PWM的生成,分频系数与period都是固定的,这样PWM频率和100%
    发表于 03-07 07:34

    请问DLPLCR6500 EVM外接光源的引脚的频率占空比是不是可调的?

    请问DLPLCR6500 EVM 外接光源的引脚的频率占空比是不是可调的?频率最大可调至多少?该如何调节?图片红圈里指的是什么?
    发表于 02-27 06:33

    HC32F334的HRTIM和PLA,能输出频率连续可调PWM波形吗?

    HC32F334的HRTIM和PLA,能输出频率连续可调PWM波形吗?
    发表于 02-27 06:28

    电机项目中瑞萨RA-T系列波形输出占空比详解

    在电机工程中,有时需输出带死区的0%和100%的占空比PWM波形,以达到过调制效果。本文以RA6T2为例,介绍在使用RA-T系列芯片建立电机工程时,如何使用GPT的互补
    的头像 发表于 02-10 12:50 2304次阅读
    电机项目中瑞萨RA-T系列<b class='flag-5'>波形</b><b class='flag-5'>输出</b><b class='flag-5'>占空比</b>详解

    BUCK电路占空比对电流波形的影响

    BUCK电路的占空比对电流波形具有显著的影响。以下是对这一影响的分析: 一、占空比对电流波形的影响机制 在BUCK电路中,占空比决定了开关管
    的头像 发表于 12-12 17:08 2589次阅读

    BUCK电路占空比与开关频率的关系

    )在开关周期内导通的时间与整个周期时间的比值。 它直接影响BUCK电路的输出电压,占空比越大,输出电压越高(在输入电压恒定的情况下)。 开关频率 : 开关
    的头像 发表于 12-12 17:01 4775次阅读