[STM32WB]

【STM32WB09KE】+定时器PWM

[复制链接]
1193|1
手机看帖
扫描二维码
随时随地手机跟帖
meiyaolei|  楼主 | 2024-11-26 16:19 | 显示全部楼层 |阅读模式
使用STM32WB09KE微控制器上使用定时器(TIM2)的PWM(脉冲宽度调制)输出步骤和配置。

一、硬件
STM32WB09KE微控制器开发板PWM输出位置。
67486674581913e004.png

二、软件配置
初始化定时器,在STM32的固件库中,初始化定时器2的相关参数,时钟源、预分频器、自动重载寄存器(ARR)和捕获/比较寄存器(CCR)。

配置PWM模式,将定时器2配置为PWM模式,并设置相关参数,输出比较极性、输出状态等。

配置GPIO,PWM信号需要通过GPIO口输出,因此需要配置相应的GPIO为复用推挽输出模式,并连接到定时器2的PWM输出通道。
75636745829e1256f.png

三、PWM输出代码
在STM32的固件库中,使用函数来配置和启动PWM输出。
TIM_OC_InitTypeDef sConfigOC = {0};

  htim2.Instance = TIM2;

  htim2.Init.Prescaler = 63;

  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;

  htim2.Init.Period = 999;

  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;

  if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)

  {

    Error_Handler();

  }

  sConfigOC.OCMode = TIM_OCMODE_PWM1;

  sConfigOC.Pulse = 499;

  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;

  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;

  if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)

  {

    Error_Handler();

  }

        HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);

  HAL_TIM_MspPostInit(&htim2);
输出波形代码:
TIM_OC_InitTypeDef sConfigOC = {0};

  htim2.Instance = TIM2;

  htim2.Init.Prescaler = 63;

  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;

  htim2.Init.Period = 999;

  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;

  if (HAL_TIM_OC_Init(&htim2) != HAL_OK)

  {

    Error_Handler();

  }

  sConfigOC.OCMode = TIM_OCMODE_PWM1;

  sConfigOC.Pulse = 999 * value/100 ;

  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;

  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;

  if (HAL_TIM_OC_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)

  {

    Error_Handler();

  }

        HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
四、实际实物测量引脚图:
1086167458410c0284.jpg
五、输出波形图:
958676745841c2cbdf.jpg

总结:
STM32WB09KE微控制器上使用TIM2定时器配置PWM输出的步骤。硬件上需确定PWM输出位置,软件是对初始化定时器参数(时钟源、预分频器、ARR、CCR),配置PWM模式(输出比较极性、状态),并将相关GPIO配置为复用推挽输出模式。代码示例展示了如何配置和启动PWM输出,通过调整Pulse值可控制PWM占空比。通过实际测量引脚和观察输出波形图,可验证PWM配置的正确性。整个过程确保了PWM信号的精确生成与控制,适用于多种应用场景。

使用特权

评论回复
shenxiaolin| | 2024-11-28 17:03 | 显示全部楼层
时钟频率可以到多少?多少位的定时器?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:工程师
简介:超越自我,为设计激发灵感和想象。

172

主题

667

帖子

4

粉丝