嵌入式备忘录(二) STM32H7配置PWM输出

文章详细介绍了如何在STM32H750VBT6芯片上使用STM32CubeMX和KeilIDE配置TIM4定时器为PWM输出,包括时钟设置、溢出频率计算、占空比调整以及PWM输出控制函数的实现。

使用STM32Cube+keil实现

STM32CubeMX配置

  • 根据需要的引脚,选择所需要的定时器(本文使用芯片为STM32H750VBT6)可知用到的是TIM4,将4个通道都配置为PWM输出
    在这里插入图片描述
  • 确定TIM4定时器在哪条时钟总线上,查《STM32H7xx参考手册》可知TIM4在APB1总线
    在这里插入图片描述
  • APB1的时钟总线设置如下图,可以得出定时器频率为240MHz
    在这里插入图片描述
  • 回到TIM4的参数设置界面,通过Prescaler和Counter Period设置溢出频率,auto-reload preload设置为Enable,表示每次溢出后重新进行计数。这里时钟频率是240M,溢出频率计算方法:240M/(Prescaler+1)(Counter Period+1)=2KHz,溢出周期为1/2K=500us,也就是说,每过500us重新开始计数
    在这里插入图片描述
  • 设置每个通道的pulse值来调节占空比,这里设置为125,占空比计算公式:pulse/counter period=125/250=50%,将Output compare preload设置为Enable
    在这里插入图片描述

Keil代码

在tim.c中可以找到关于tim4的初始化函数,这里为了其他功能对传入的参数做了一些小调整

void MX_TIM4_Init(uint16_t arr)
{
   
   

  /* USER CODE BEGIN TIM4_Init 0 */

  /* USER CODE END TIM4_Init 0 */

  TIM_MasterConfigTypeDef sMasterConfig = {
   
   0};
  TIM_OC_InitTypeDef sConfigOC = {
   
   0};

  /* USER CODE BEGIN TIM4_Init 1 */

  /* USER CODE END TIM4_Init 1 */
  htim4.Instance = TIM4;
  htim4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值