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

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

3天内不再提示

演示STM32中PWM的配置与应用

STM32嵌入式开发 来源:ARM与嵌入式 2023-01-13 10:30 次阅读

打开CubeMX软件,新建工程。

d4804d3e-9266-11ed-bfe3-dac502259ad0.png

输入芯片型号。

d4998948-9266-11ed-bfe3-dac502259ad0.png

根据封装选择列表中的芯片,我的是LQFP144封装,双击此项。

d4a8b6de-9266-11ed-bfe3-dac502259ad0.png

在Project Manager选项卡中,配置工程名、编译工具,如下图所示。

d4c024c2-9266-11ed-bfe3-dac502259ad0.png

Pinout&Configuration选项卡中,配置System的Debug为Serial Wire,否则可能无法下载程序。

d4d80bbe-9266-11ed-bfe3-dac502259ad0.png

RCC选择高速外部时钟

d4ed7742-9266-11ed-bfe3-dac502259ad0.png

根据电路原理图,可知LED7对应PC6管脚。

d50aab5a-9266-11ed-bfe3-dac502259ad0.png

d52e0cf8-9266-11ed-bfe3-dac502259ad0.png

本实验要让PC6管脚输出PWM波形,实现LED7呼吸灯效果。

找到PC6,选中TIM3_CH1。

d5705efa-9266-11ed-bfe3-dac502259ad0.png

找到TIM3,通道1配置PWM输出。

d589b832-9266-11ed-bfe3-dac502259ad0.png

查找STM32参考手册时钟图,找到TIM3时钟的位置在APB1上。

d5bb96d6-9266-11ed-bfe3-dac502259ad0.png

在CubeMX上配置APB1 Timer定时器时钟频率为72MHz。

d5e2b6a8-9266-11ed-bfe3-dac502259ad0.png

配置TIM3_CH1参数,这里涉及到到计算的问题,具体说一下。

d5fffb1e-9266-11ed-bfe3-dac502259ad0.png

如上图PWM产生原理:

定时器从0开始计数

0-t1时段,输出低电平

t1-t2时段,输出高电平

当定时器计数值达到ARR时溢出,完成一个周期

输出逻辑电平方波,如上图红线所示。

PWM频率计算公式:

PWM频率 = 定时器时钟频率/(AutoReloadRegister + 1)/(PSC + 1)

简单推导一下PWM频率是如何计算的:

一个PWM波周期t2的大小,也就是从0计数到ARR所需要的时间,每一个定时器时钟周期计数一次,总共计数ARR次之后溢出完成一个周期。

d60eef3e-9266-11ed-bfe3-dac502259ad0.png

占空比计算公式:CCRx/ARR。

回到CubeMX工程,TIM3参数设置如下,

ARR=500-1,PSC=72-1,Pulse=170

占空比大概是Pulse/ARR约等于50%,PWM频率2000Hz。

d6289bf0-9266-11ed-bfe3-dac502259ad0.png

保存,生成代码。

d655de94-9266-11ed-bfe3-dac502259ad0.png

打开工程。

d6674d00-9266-11ed-bfe3-dac502259ad0.png

在MDK中main.c添加如下代码。

d68529b0-9266-11ed-bfe3-dac502259ad0.png

主函数比较简单,i值逐渐增大,占空比随之增大,LED亮度逐渐增加。

当i值为299时,fx值变为1,从下一个循环开始i值开始逐渐减小,占空比随之减小,过程中LED亮度逐渐减弱。

编译下载到开发板,可以看到如下呼吸灯效果。




审核编辑:刘清

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

    关注

    114

    文章

    5189

    浏览量

    214013
  • STM32
    +关注

    关注

    2270

    文章

    10900

    浏览量

    356158
  • 呼吸灯
    +关注

    关注

    10

    文章

    110

    浏览量

    42740

原文标题:STM32中PWM的配置与应用详解

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32F407 基本定时器配置输出PWM方波

    介绍STM32F407定时器PWM波形输出配置方式。 通过逻辑分析采集波形数据进行可视化显示对比。
    的头像 发表于 07-06 14:33 5210次阅读
    <b class='flag-5'>STM32</b>F407 基本定时器<b class='flag-5'>配置</b>输出<b class='flag-5'>PWM</b>方波

    STM32CubeMx入门教程(4):PWM应用

    导语“使用STM32CubeMx配置定时器输出PWM波,生成初始化代码。”
    发表于 07-11 15:23 2462次阅读
    <b class='flag-5'>STM32</b>CubeMx入门教程(4):<b class='flag-5'>PWM</b>应用

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

    STM32F103的TIM1和TIM8是高级定时器,可以产生嵌入死区时间的互补PWM波,使用STM32CubeIDE完成相关配置,可以直接生成代码,输出带死区的
    的头像 发表于 11-01 09:41 7618次阅读
    <b class='flag-5'>STM32</b>CubeIDE下<b class='flag-5'>配置</b><b class='flag-5'>STM32</b>F103输出带死区的互补<b class='flag-5'>PWM</b>波

    STM32如何配置PWM死区时间?

    请问什么是死区时间呢?我也想知道STM32如何配置PWM死区时间? 求大神指教!
    发表于 03-05 07:24

    记录Rt-ThreadSTM32输出PWM配置过程

    主要记录了Rt-Thread STM32 输出PWM配置过程,通过设置不同频率PWM使蜂鸣器发出不同音调
    发表于 02-15 06:38

    STM32F0xx_ TIM输出PWM配置详细过程

    STM32F0xx_TIM输出PWM配置详细过程
    的头像 发表于 04-07 11:28 7668次阅读
    <b class='flag-5'>STM32</b>F0xx_ TIM输出<b class='flag-5'>PWM</b><b class='flag-5'>配置</b>详细过程

    如何在STM32配置PWM死区时间资料下载

    电子发烧友网为你提供如何在STM32配置PWM死区时间资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以
    发表于 03-27 08:40 29次下载
    如何在<b class='flag-5'>STM32</b><b class='flag-5'>中</b><b class='flag-5'>配置</b><b class='flag-5'>PWM</b>死区时间资料下载

    STM32G030F6使用CubeMx配置PWM实验

    1. 使用 CubeMx 创建 PWM 工程打开 CubeMx 软件,选中我们此次使用的单片机型号 STM32G030F6P6 ,点击 StartProject.配置定时器配置定时器1
    发表于 12-05 15:21 28次下载
    <b class='flag-5'>STM32</b>G030F6使用CubeMx<b class='flag-5'>配置</b><b class='flag-5'>PWM</b>实验

    【Rt-Thread】STM32输出PWM

    主要记录了Rt-Thread STM32 输出PWM配置过程,通过设置不同频率PWM使蜂鸣器发出不同音调
    发表于 12-16 16:57 17次下载
    【Rt-Thread】<b class='flag-5'>STM32</b>输出<b class='flag-5'>PWM</b>

    STM32CUBEIDE(11)----输出PWM及修改PWM频率与占空比

    本章STM32CUBEMX配置STM32F103输出PWM,并在示波器查看效果。
    的头像 发表于 11-30 14:12 1.1w次阅读
    <b class='flag-5'>STM32</b>CUBEIDE(11)----输出<b class='flag-5'>PWM</b>及修改<b class='flag-5'>PWM</b>频率与占空比

    STM32CUBEMX开发GD32F303(12)----输出PWM及修改PWM频率与占空比

    本章STM32CUBEMX配置STM32F103,并且在GD32F303进行开发,同时通过开发板内进行验证。 本章主要配置定时器输出
    的头像 发表于 11-30 14:40 3875次阅读
    <b class='flag-5'>STM32</b>CUBEMX开发GD32F303(12)----输出<b class='flag-5'>PWM</b>及修改<b class='flag-5'>PWM</b>频率与占空比

    SMT32的PWM波形输出配置总结

    本文分享STM32PWM波形输出配置总结。
    的头像 发表于 02-22 15:36 1596次阅读

    STM32PWM波形输出配置的大神总结

    STM32PWM波形输出配置的大神总结
    的头像 发表于 10-24 16:00 3772次阅读
    <b class='flag-5'>STM32</b>的<b class='flag-5'>PWM</b>波形输出<b class='flag-5'>配置</b>的大神总结

    STM32无法正常输出PWM信号的原因及解决方法

    PWM(Pulse Width Modulation)脉宽调制威廉希尔官方网站 在嵌入式系统应用广泛,可以控制电流或电压的大小,从而实现对电机转速、亮度等的调节。然而,在使用STM32系列微控制器时,有时会遇到
    的头像 发表于 01-02 17:38 1w次阅读

    PWM输出配置方法

    从上节课的定时器分类图中我们了解到,互补输出是高级定时器(TIM1、TIM8)所独有的,它可以输出两路互补信号。而在本节课我们将通过一个简单的例程去介绍如何配置互补PWM输出,同时为了演示
    的头像 发表于 11-04 09:44 879次阅读
    <b class='flag-5'>PWM</b>输出<b class='flag-5'>配置</b>方法