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

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

3天内不再提示

使用STM32G474芯片做Half模式的PWM输出

单片机 来源:茶话MCU 作者:Miler 2021-08-16 17:59 次阅读

有人想使用STM32G474芯片做Half模式的PWM输出,发现有点问题,明明配置了定时器A的两路输出, 结果总是只有1路输出。这里简单演示下实现过程。【顺便提醒下,并非STM32G4全系列都内置高精度定时器】

所谓Half模式就是指硬件基于给定的计数周期值自动输出占空比为50%的方波,用户无须对比较寄存器的值再进行设置,这里硬件默认使用比较寄存器1【cmp1】,硬件自动将用户设置的PERIOD值的一半赋给CMP1寄存器。换言之,用户此时无法对CMP1寄存器进行赋值。

另外,对于输出配置必须使用CMP1比较事件和定时器的Period周期事件。

关于HALF模式的原理就介绍到这里,下面就使用STM32G474RE的Nucleo开发板演示下实现过程,主要是软件配置,硬件没啥要处理的,有块开发板就行。

先使用STM32CubeMx进行配置【其它RCC等的配置此处就不说了】。

下面截图橙色框中的配置是必须的,有关定时器的时间参数我随便配置的,毕竟这里只是演示一下功能。

这里的比较单元1必须使能,使能即可,无须参数配置。

c6a782f0-fe6e-11eb-9bcf-12bb97331649.png

下面关于TA1/TA2输出的配置,也是必须的关键配置。

c6d83a44-fe6e-11eb-9bcf-12bb97331649.png

至于定时器的其它配置,保持默认即可。配置完成后,生成初始化代码,然后加入合适的用户代码。

HAL_HRTIM_WaveformCountStart(&hhrtim1, HRTIM_TIMERID_TIMER_A);

HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1);

HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA2);

因为我把TA1/TA2极性选择是相反的,所有此时输出的是两路互补波形,如果二者极性选择一致,输出的就是两路占空比为50%的相同波形。

OK,该话题就分享到此,愿君有所获。

责任编辑:haq

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

    关注

    2270

    文章

    10896

    浏览量

    355768
  • 定时器
    +关注

    关注

    23

    文章

    3246

    浏览量

    114739

原文标题:STM32G4高精度定时器的HALF输出模式示例

文章出处:【微信号:aidanpianji,微信公众号:单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32 HRTIM Burst输出模式应用演示

    有人使用STM32G474芯片的片上高精度定时器HRTIM,他想使用其输出功能的Burst Mode。但不知如何使用,想找找参考例程。我这里就使用STM32G474
    的头像 发表于 10-13 09:07 4456次阅读
    <b class='flag-5'>STM32</b> HRTIM Burst<b class='flag-5'>输出</b><b class='flag-5'>模式</b>应用演示

    STM32G474的DAC4无输出怎么解决?

    STM32G474 的DAC4采用定时器4触发dma,OUT1连接到比较器5,测试下来 DAC4没输出,是配置哪里有问题吗 定时器4的配置: DAC4: 比较器5: DAC4的DMA: normal 改circular 改过不行memory 勾上也试过 不行。 配
    发表于 03-08 07:08

    为什么STM32G474的hrtim里,timerA在使用死区模式后,设置TA1的输出后无法设置TA2的置位源和复位源?

    为什么STM32G474的hrtim里,timerA在使用死区模式后,设置TA1的输出后无法设置TA2的置位源和复位源,而timerB在使用死区模式后无法设置Tb2的置位源但可以设置复
    发表于 05-22 06:23

    stm32g474的开发板很烫的原因?

    stm32g474的开发板很烫
    发表于 07-24 06:59

    stm32g474 qspi不进dma中断是怎么回事?

    stm32g474 qspi 不进dma中断
    发表于 09-13 07:10

    配置一下stm32g474的外部中断

    我感觉stm32的外部中断都是大同小异的,因此我以stm32g474为例,配置一下外部中断。举例引脚: PE5配置引脚为输入模式(GPIOx_MODER);配置触发模式(上升沿/下降沿
    发表于 08-17 06:50

    stm32g474的外部中断如何配置?

    stm32g474的外部中断如何配置?
    发表于 11-18 07:17

    如何利用STM32G474设计双向变流器?

    如何利用STM32G474设计双向变流器?
    发表于 11-19 07:52

    小白求助,求STM32G474时钟设置笔记

    小白求助,求STM32G474时钟设置笔记
    发表于 11-24 07:43

    带DMA的STM32G474 DAC不工作是为什么?

    我尝试使用来自 STM32G474 评估板的 DMA 进行 DAC。我可以看到值正在更新到 DOR 寄存器并且 DAC EN 设置为 1。但是,DAC 的输出停留在 0。我附上了 cubeide 设置。
    发表于 12-15 07:06

    如何利用STM32G474芯片的高精度定时器实现两对互补输出

    有人利用STM32G474芯片的高精度定时器实现两对互补输出,即用到TIMA和TIMB两个定时单元分别输出两对互补信号。 可是他发现两个定时器单元
    的头像 发表于 08-23 11:55 1.1w次阅读
    如何利用<b class='flag-5'>STM32G474</b><b class='flag-5'>芯片</b>的高精度定时器实现两对互补<b class='flag-5'>输出</b>

    STM32G474逐波限流保护的实现

    STM32G474 的高精度定时器除了能产生高精度的 PWM 波外,还包含了外部事件管理器,能对多达 10 个外部事件进行处理。可以设置外部事件的触发源、触发方式(沿触发或是电平触发)、相应方式(同步或是异步)以及事件的滤波方式。
    的头像 发表于 05-06 09:56 5831次阅读

    工程师笔记|STM32G474 HRTIME PWM 丢波问题分析与解决

    关键词:HRTIME, PWM,丢波,消隐 目录预览 1.前言 2.问题描述 3.原因分析 4.解决方法 5.小结 STM32G474 中包含了针对数字电源应用的高精度定时器(HRTIMER),客户
    的头像 发表于 12-02 18:55 3515次阅读

    STM32G474 逐波限流保护的实现

    STM32G474 逐波限流保护的实现
    的头像 发表于 10-26 18:16 2637次阅读
    <b class='flag-5'>STM32G474</b> 逐波限流保护的实现

    实战经验 | STM32G474 中 Triggered-half 模式的实现

    关键词:Triggered-half,Interleave 目录预览 1、引言 2、Triggered-half 模式介绍 3、应用实例 4、小结 01 引言 STM32
    的头像 发表于 12-11 18:15 1935次阅读
    实战经验 | <b class='flag-5'>STM32G474</b> 中 Triggered-<b class='flag-5'>half</b> <b class='flag-5'>模式</b>的实现