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

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

3天内不再提示

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

嵌入式单片机MCU开发 来源:嵌入式单片机MCU开发 作者:嵌入式单片机MCU开 2022-11-30 14:12 次阅读

概述

本章STM32CUBEMX配置STM32F103输出PWM,并在示波器中查看效果。

需要样片的可以加Qun申请:615061293。

生成例程

使用STM32CUBEMX生成例程,这里使用NUCLEO-F103RB开发板

在这里插入图片描述

查看原理图,PA8设置为PWM输出管脚。

在这里插入图片描述

生成独立的文件。

在这里插入图片描述

工作过程

查看下面工作原理图可以得知,时钟可以由内部Internal clock产生或者外部ETR。 同时可以设置复位,使能,向上/向下,计数。

在这里插入图片描述

查看下列文档可以得知,定时器主要有TIMx_CNT、TIMx_PSC、TIMx_ARR、TIMx_RCR控制。 同时预分频器(TIMx_PSC)范围位1-65535。

在这里插入图片描述

查看TIMx_PSC说明,可以得知定时器频率为 fCK_PSC / (PSC[15:0] + 1)

在这里插入图片描述

可以看到,当psc设置为不同的值的时候,计数频率也会发生改变。

在这里插入图片描述

同时ARR可以改变计数值,当写入的arr越大,他的频率越低,计数周期是ARR+1。

在这里插入图片描述

PWM频率计算如下所示。

在这里插入图片描述

在上面配置TIM1参数,预分频系数设置为64-1, 自动重载值设置为1000-1,那么PWM频率为64,000,000/((64-1+1)*(1000-1+1))=1000Hz,即1KHz。

在这里插入图片描述

只要TIM1_CNT= TIM1_CCRx,OCxRER为低。若TIM1_CCRx中的比较值大于自动重载值(在TIM1_ARR中)则OCxREF仍保持1。若比较值是0则OCxREF保持0。下图的例子显示了当TIM1_ARR=8时一些边沿对齐的PWM波形。

在这里插入图片描述

__HAL_TIM_SET_COMPARE()

设置ccr,可以通过此函数修改pwm。

在这里插入图片描述

由于上述设置计数值位1000,那么设置30%的正占空比的ccr应该配置为30%*1000=300,代码如下所示。

HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 300);

在这里插入图片描述

修改PWM频率

修改PWM频率可以修改PSC或者ARR来进行改变。

在这里插入图片描述

__HAL_TIM_SET_AUTORELOAD ()

设置TIM自动重新加载寄存器值。

在这里插入图片描述

初始设置为PSC为64-1,ARR为1000-1,若设置为500-1,那么他的频率应该是64M/(64-1+1)(500-1+1)=2k 占空比为300/500*100%=60%

__HAL_TIM_SET_AUTORELOAD(&htim1, 500-1);

在这里插入图片描述

__HAL_TIM_SET_PRESCALER()

在运行时设置TIM Prescaler。

在这里插入图片描述

初始设置为ARR为500-1,PSC为64-1,若设置为32-1,那么他的频率应该是64M/(32-1+1)(500-1+1)=4k 占空比为300/500*100%=60%

__HAL_TIM_SET_PRESCALER(&htim1, 32-1);

在这里插入图片描述
审核编辑:汤梓红

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

    关注

    113

    文章

    6240

    浏览量

    184794
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5181

    浏览量

    213796
  • stm32cubemx
    +关注

    关注

    5

    文章

    283

    浏览量

    14791
收藏 人收藏

    评论

    相关推荐

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

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

    如何在stm32cubeide上使用pwm驱动snail电机?

    如何在stm32cubeide上使用pwm驱动snail电机?
    发表于 11-26 07:44

    请问如何在stm32cubeide上使用pwm驱动snail电机?

    STM32CubeMX的特点是什么?如何在stm32cubeide上使用pwm驱动snail电机?
    发表于 01-20 07:37

    stm32单片机pwm占空比调节

    stm32CubeIDE编程里面怎么方便地修改pwm波的占空比?除了__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, pulse_wid
    发表于 11-06 18:20

    关于定时器输出PWM频率范围及占空比精度

    定时器输出PWM频率范围及占空比精度
    的头像 发表于 03-12 10:37 1.4w次阅读

    STM32如何实现可调频率占空比PWM波形,且可指定输出脉冲个数?

    STM32如何实现可调频率占空比PWM波形,且可指定输出脉冲个数?
    的头像 发表于 03-12 11:04 2.7w次阅读

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

    STM32F4_TIM输出PWM波形(可调频率占空比
    的头像 发表于 03-24 11:26 1.4w次阅读

    STM32CubeIDE SWV功能介绍

    01 引言 STM32CubeIDE是ST官方推出的集成开发环境,集成了很多STM32的调试与开发工具。本文主要介绍如何使用SWV功能来打印输出。 02 问题描述 客户使用STM32CubeI
    的头像 发表于 10-13 14:20 3757次阅读
    <b class='flag-5'>STM32CubeIDE</b> SWV功能介绍

    STM32产生固定频率占空比可变的PWM

    讲述如何设置PWM波的频率和初始占空比,以及如何实现占空比可调的PWM。本文中笔者使用的STM32
    发表于 12-01 13:36 72次下载
    <b class='flag-5'>STM32</b>产生固定<b class='flag-5'>频率</b>和<b class='flag-5'>占空比</b>可变的<b class='flag-5'>PWM</b>

    STM32CubeIDE使用

    参考STM32CubeIDE属于一站式工具,本文带你体验它的强大第一个STM32CubeIDE项目STM32CubeIDE使用记录STM32CubeIDE使用笔记(03):使用ST-L
    发表于 12-02 17:21 29次下载
    <b class='flag-5'>STM32CubeIDE</b>使用

    STM32CubeIDE初识

    STM32CubeIDE初识
    发表于 12-02 18:36 23次下载
    <b class='flag-5'>STM32CubeIDE</b>初识

    STM32 PWM输出延迟问题

    频率占空比后,使用下面更新事件,即可消除延迟TIM_GenerateEvent(TIM1,TIM_PSCReloadMode_Immediate);例如:端口PA11,TIM1_CH4修改
    发表于 12-24 18:57 12次下载
    <b class='flag-5'>STM32</b> <b class='flag-5'>PWM</b><b class='flag-5'>输出</b>延迟问题

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

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

    GD32F303固件库开发(12)----输出PWM修改PWM频率占空比

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

    STM32CUBEIDE(12)----定时器TIM捕获PWM测量频率占空比

    本章STM32CUBEMX配置STM32F103输出PWM,并在示波器中查看效果。 最近在弄ST和GD的课程,需要GD样片的可以加群申请:615061293 。
    的头像 发表于 11-30 16:08 5227次阅读
    <b class='flag-5'>STM32CUBEIDE</b>(12)----定时器TIM捕获<b class='flag-5'>PWM</b>测量<b class='flag-5'>频率</b>与<b class='flag-5'>占空比</b>