文章目录

  • 一、前言
  • 二、CubeMX
    • 2.1、Clock Configuration
    • 2.2、TIM8 Mode and Configuration
    • 2.3、Parameter Settings
      • Counter Settings
      • PWM Generation Channel1 与 PWM Generation Channel2
      • 其他
    • 2.4、生成代码
  • 三、代码
    • 3.1、tim.c
    • 3.2、烧写代码
  • 四、示波器

相关笔记:
STM32H743+CubeMX-定时器TIM输出PWM(Output Compare模式)
STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波

一、前言

PWM波形在实际工作上有非常广泛的使用,尤其在步进电机控制与LED阵列的控制。使用定时器的PWM产生模式让TIM8的通道1与通道2产生PWM波形,如下图所示,PWM波形的频率10kHz。
通道1与通道2的PWM关系是非对称关系,相当于互斥。
当通道1为高电平时,通道2为低电平。
当通道1为低电平时,通道2为高电平。

二、CubeMX

2.1、Clock Configuration

根据《STM32H7x3编程参考手册》第102页,TIM8的时钟源是APB2。当前工程上APB2的时钟频率是240M(后续用于计算PWM的周期)。

2.2、TIM8 Mode and Configuration

使用TIM8,使能通道1与通道2为PWM模式。

2.3、Parameter Settings

Counter Settings

TIM8的溢出频率=240M / ( Counter Period + 1 ) / ( Prescaler + 1 ),如下图所示,TIM8的溢出频率 = 240M / 24000 / 1 = 10kHz。 周期T = 1 / f = 1 / 10k = 100us。
所以TIM8的溢出频率是10kHz,周期T是100us。

PWM Generation Channel1 与 PWM Generation Channel2

Counter Period是24000 - 1 , Pulse 是 12000 -1 ,所以占空比为50%。根据实际使用调整Pulse的值,就能改变占空比。

其他

不用管。

2.4、生成代码

三、代码

3.1、tim.c

在函数void MX_TIM8_Init(void)里添加用户代码,调用HAL_TIM_PWM_Start()开启PWM输出。

3.2、烧写代码

编译,烧写代码,接着使用示波器检测PC6与PC7即可。

四、示波器

从下图看到,PWM波形的频率是10kHz,符合2.3章节所计算的频率。跟Output Compare模式所产生的PWM波频率不一样(参考另一篇笔记《基于STM32H743+CubeMX-定时器TIM输出PWM(Output Compare模式)》

STM32H743+CubeMX-定时器TIM输出PWM(PWM Generation模式)相关推荐

  1. STM32单片机:定时器TIM输出PWM波

    学习32单片机过程中使用的工具:MDK Keil5 + 正点原子精英版(STM32F103ZET6)+ STM32CubeMX + HAL开发 一.PWM的产生原理 关于PWM的产生原理网上有很多教程 ...

  2. stm32常见定时器---TIM定时及PWM输出

    STM32 常见定时器资源: 系统滴答定时器SysTick----提供时钟节拍做时间基准 看门狗定时器WatchDog----防止程序跑飞 实时时钟RTC 基本定时器:TIM7.TIM6 通用定时器: ...

  3. TIM输出比较——PWM

    目录 前言 一.什么是输出比较 二.什么是PWM 1. PWM的相关参数: 2.PWM的应用场景: 3.占空比 三.输出比较的几种模式: 四,输出比较的极性 五,在输出比较中,TIM常用函数 六,同一 ...

  4. STM32H743+CubeMX-定时器TIM输出PWM(Out Compare模式) + 中断

    文章目录 一.前言 二.CubeMX 2.1.NVIC Settings 2.2.生成代码 三.代码 3.1.tim.c 四.DEBUG 五.细节补充 一.前言 STM32H743+CubeMX-定时 ...

  5. STM32H743+CubeMX-定时器TIM输出PWM(PWM Generation模式)+ 中断

    文章目录 一.前言 二.CubeMX 2.1.Mode and Parameter Settings 2.2.NVIC Settings 2.3.生成代码 三.代码 3.1.tim.c 3.2.mai ...

  6. [控制基础] 定时器TIM的PWM输出+用积分思想分析PWM对直流减速有刷电机的控制(基于STM32F103+CubeMX+HAL)

    目录 解决的需求 一.高级定时器TIM1/TIM8 1.时基单元 2.更新操作与更新事件 3.与其他定时器的比较 ①.与其他定时器时基单元的比较 ②.与通用定时器的比较 4.CK_INT与CK_CNT ...

  7. STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波

    文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.LPTIM2 Mode and Configuration 2.3.Parameter Settings ...

  8. STM32H743+CubeMX-定时器TIM输出PWM(Output Compare模式)

    文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.TIM8 Mode and Configuration 2.3.Parameter Settings Co ...

  9. STM32H743+CubeMX-定时器TIM发送非对称PWM(使用一个通道)

    文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.TIM1 Mode and Configuration 2.3.Parameter Settings 2. ...

最新文章

  1. 受用一生的高效 PyCharm 使用技巧(六)
  2. 谷歌发布TensorFlow,用于测试人工智能模型的隐私保护
  3. 关于RESTful名字的含义
  4. centos7 docker升级到最新稳定版本
  5. mysql安全配置基线_MySql数据库安全配置基线.doc
  6. Java常见面试题及答案汇总
  7. 【数据结构基础笔记】【链表】
  8. linux屏保配置文件夹,Linux下屏保设置
  9. new操作符的作用是什么
  10. 取代树莓派,这 9 款系统基础芯片跃跃欲试!
  11. redismanager 获取不到yml中的密码_恋爱物语APP:在城市的孤独中,获取真爱密码...
  12. 二年级孩子适合学C语言吗,小孩子适合学习编程吗?孩童时期对变成的接受程度有多少呢?...
  13. 简历表格下载word格式 免费版​
  14. 木马开发的基本理论基础(四)
  15. 无人机开发-介绍Mavlink协议的消息组成、如何看懂繁杂的mavlink官网介绍、简单介绍地面站与飞控的通讯流程
  16. skinsdog 狗网CSGO开箱地址!csgo开箱网站官网!
  17. iOS 字体转换
  18. 汉诺塔非递归算法分析与实现
  19. ITU601与ITU656
  20. MATlAB运用——数值积分

热门文章

  1. 另类玩法:通过 DNS 进行文件传输
  2. 《深入理解计算机系统》第七章 链接
  3. 转:大型网站架构系列:负载均衡详解(2)
  4. 【C++基金会 06】explictkeyword
  5. three.js 源代码凝视(七)Math/Euler.js
  6. 《0bug-C/C++商用工程之道》节选00--内存管理的基本要求
  7. 有个程序媛女朋友是一种什么样的感觉?
  8. 【飞秋】一起学Windows Phone7开发(十三.二 按钮控件)
  9. C++程序设计语言编程风格演变史
  10. 你是菜鸡是有原因的 谈谈提问的艺术